package com.beehive.db.dao.impl.account;
import java.util.List;
import javax.annotation.Resource;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Component;
import com.beehive.db.dao.account.UserDAO;
import com.beehive.db.entity.account.User;
@Component("userDAO")
public class UserDAOHibernateImpl implements UserDAO{
private SessionFactory sessionFactory;
public void save(User user) {
sessionFactory.getCurrentSession().persist(user);
}
public SessionFactory getSessionFactory() {
return sessionFactory;
}
@Resource
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public void delete(User user) {
sessionFactory.getCurrentSession().delete(user);
}
public void delete(long id) {
User user = getByID(id);
delete(user);
}
public User getByID(long id) {
return (User)sessionFactory.getCurrentSession().get(User.class, id);
}
@SuppressWarnings("unchecked")
public User getByName(String name) {
String hql = "from User where name = '" + name +"'";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
List<User> userList = query.list();
if(userList.size()==1)
return userList.get(0);
return null;
}
@SuppressWarnings("unchecked")
public List<User> getMultiple(int first, int max) {
String hql = "from User";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
query.setFirstResult(first);
query.setMaxResults(max);
List<User> userList = query.list();
return userList;
}
public void update(User user) {
sessionFactory.getCurrentSession().update(user);
}
@SuppressWarnings("unchecked")
public boolean checkValid(String name, String password) {
String hql = "from User where name = '" + name + "' and password = '" + password + "' and active is true";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
List<User> userList = query.list();
if(userList.size()>0)
return true;
return false;
}
}
|