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.core.Agent;
10 import org.directdemocracyportal.democracy.service.dao.AgentDAO;
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 HibernateAgentDAO.
19 */
20 @Transactional(propagation = Propagation.MANDATORY)
21 public class HibernateAgentDAO extends GenericHibernateDAO<Agent, Long>
22 implements AgentDAO
23 {
24
25 /***
26 * Instantiates a new hibernate agent dao.
27 */
28 public HibernateAgentDAO() {
29 super(Agent.class);
30 }
31
32
33
34
35 @Transactional(readOnly = true)
36 public Agent findByName(String name) throws DataAccessException {
37 DetachedCriteria findByName = DetachedCriteria.forClass(Agent.class);
38 findByName.add(Restrictions.eq("name", name));
39
40 @SuppressWarnings("unchecked")
41 List<Agent> result = this.getHibernateTemplate().findByCriteria(
42 findByName);
43
44 return result.isEmpty() ? null : result.get(0);
45 }
46
47 }