View Javadoc

1   /*
2    *  DISCLAIMER
3    */
4   package org.flowfuse.base.dao.hibernate;
5   
6   import org.apache.commons.logging.Log;
7   import org.apache.commons.logging.LogFactory;
8   import org.flowfuse.base.dao.UserDao;
9   import org.flowfuse.base.model.user.User;
10  import org.springframework.dao.IncorrectResultSizeDataAccessException;
11  import org.springframework.orm.ObjectRetrievalFailureException;
12  
13  import java.util.List;
14  
15  /***
16   * @author <a href="stefan@flowfuse.org">Stefan Kleineikenscheidt</a>,
17   *         Flowfuse.org
18   * @version $Id: UserDaoHibernate.java,v 1.1 2005/11/20 15:02:02 skleinei Exp $
19   */
20  public class UserDaoHibernate extends BaseDaoHibernate implements UserDao {
21  
22    /***
23     * RCS ID
24     */
25    public final static String rcsid = "$Id: UserDaoHibernate.java,v 1.1 2005/11/20 15:02:02 skleinei Exp $";
26  
27    /***
28     * Logger
29     */
30    protected final Log logger = LogFactory.getLog(this.getClass());
31  
32  
33    public User getUser(Long id) {
34      User user = (User) getHibernateTemplate().get(User.class, id);
35  
36      if (user == null) {
37        throw new ObjectRetrievalFailureException(User.class, id);
38      }
39  
40      return user;
41    }
42  
43    public User getUserByUserName(String username) {
44      List results = getHibernateTemplate().find(
45              "from User u where u.username=?", username);
46  
47      if (results == null) {
48        throw new ObjectRetrievalFailureException(User.class, username);
49      }
50  
51      if (results.size() == 0 || results.size() > 1) {
52        throw new IncorrectResultSizeDataAccessException(1, results.size());
53      }
54  
55      return (User) results.get(0);
56    }
57  
58    public void saveUser(User user) {
59      getHibernateTemplate().saveOrUpdate(user);
60    }
61  
62    public void removeUser(Long id) {
63      // object must be loaded before it can be deleted
64      getHibernateTemplate().delete(getUser(id));
65    }
66  }
67  
68  /* EOF */