View Javadoc

1   package com.panogenesis.dao.hibernate;
2   
3   import java.io.Serializable;
4   import java.util.List;
5   
6   import org.apache.commons.logging.Log;
7   import org.apache.commons.logging.LogFactory;
8   import com.panogenesis.dao.DAO;
9   import org.springframework.orm.ObjectRetrievalFailureException;
10  import org.springframework.orm.hibernate.support.HibernateDaoSupport;
11  
12  /***
13   * This class serves as the Base class for all other DAOs - namely to hold
14   * common methods that they might all use. Can be used for standard CRUD
15   * operations.</p>
16   *
17   * <p><a href="BaseDAOHibernate.java.html"><i>View Source</i></a></p>
18   *
19   * @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a>
20   */
21  public class BaseDAOHibernate extends HibernateDaoSupport implements DAO {
22      protected final Log log = LogFactory.getLog(getClass());
23  
24      /***
25       * @see com.panogenesis.dao.DAO#saveObject(java.lang.Object)
26       */
27      public void saveObject(Object o) {
28          getHibernateTemplate().saveOrUpdate(o);
29      }
30  
31      /***
32       * @see com.panogenesis.dao.DAO#getObject(java.lang.Class, java.io.Serializable)
33       */
34      public Object getObject(Class clazz, Serializable id) {
35          Object o = getHibernateTemplate().get(clazz, id);
36  
37          if (o == null) {
38              throw new ObjectRetrievalFailureException(clazz, id);
39          }
40  
41          return o;
42      }
43  
44      /***
45       * @see com.panogenesis.dao.DAO#getObjects(java.lang.Class)
46       */
47      public List getObjects(Class clazz) {
48          return getHibernateTemplate().loadAll(clazz);
49      }
50  
51      /***
52       * @see com.panogenesis.dao.DAO#removeObject(java.lang.Class, java.io.Serializable)
53       */
54      public void removeObject(Class clazz, Serializable id) {
55          getHibernateTemplate().delete(getObject(clazz, id));
56      }
57  }