1
2
3
4
5 package org.directdemocracyportal.democracy.service.dao.hibernate;
6
7 import java.util.List;
8
9 import org.directdemocracyportal.democracy.model.application.User;
10 import org.directdemocracyportal.democracy.service.dao.UserDAO;
11 import org.hibernate.criterion.DetachedCriteria;
12 import org.hibernate.criterion.Restrictions;
13 import org.springframework.dao.DataAccessException;
14 import org.springframework.transaction.annotation.Propagation;
15 import org.springframework.transaction.annotation.Transactional;
16
17 /***
18 * The Class HibernateUserDAO.
19 */
20 @Transactional(propagation = Propagation.MANDATORY)
21 public class HibernateUserDAO extends GenericHibernateDAO<User, Long> implements
22 UserDAO
23 {
24
25 /***
26 * Instantiates a new hibernate user dao.
27 */
28 public HibernateUserDAO() {
29 super(User.class);
30 }
31
32
33
34
35
36
37 @Transactional(readOnly = true)
38 public User findByUsername(String username) throws DataAccessException {
39 DetachedCriteria findUserByName = DetachedCriteria.forClass(User.class);
40 findUserByName.add(Restrictions.eq("username", username));
41
42 @SuppressWarnings("unchecked")
43 List<User> result = this.getHibernateTemplate().findByCriteria(
44 findUserByName);
45
46 return result.isEmpty() ? null : result.get(0);
47 }
48 }