package org.jbehave.example.spring.security.dao;
import java.util.List;
import org.hibernate.SessionFactory;
import org.jbehave.example.spring.security.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;
@Repository("userDao")
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
@Autowired
public UserDaoImpl(SessionFactory sessionFactory) {
setSessionFactory(sessionFactory);
}
public User load(Long id) {
return (User) getHibernateTemplate().load(User.class, id);
}
public User persist(User user) {
getHibernateTemplate().saveOrUpdate(user);
return user;
}
@SuppressWarnings("unchecked")
public User findUserByOrganizationAndUsername(Long organizationId, String username) {
List<User> query = getHibernateTemplate().find("from User where organization.id = ? and username = ?", new Object[] { organizationId, username });
if (query.size() == 1) {
return (User) query.get(0);
}
return null;
}
}