1 /**
2 *
3 */
4 package ar.com.jiji.kaya.dao.hib;
5
6 import java.util.List;
7
8 import org.apache.commons.logging.Log;
9 import org.apache.commons.logging.LogFactory;
10 import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
11
12 import ar.com.jiji.kaya.dao.CRUDDAO;
13
14 /**
15 * Implementacion para Hibernate 3 y Spring de AbstractDAO
16 *
17 * @author lparra
18 * @version $Revision$ $Date$
19 */
20 public class HibernateCRUDImpl<T> implements CRUDDAO<T> {
21
22 private static final Log log = LogFactory.getLog(HibernateCRUDImpl.class);
23
24 private HibernateDaoSupport dao;
25
26 private Class clazz;
27
28 public HibernateCRUDImpl(HibernateDaoSupport dao, Class clazz) {
29 this.dao = dao;
30 this.clazz = clazz;
31 }
32
33 @SuppressWarnings("unchecked")
34 public List<T> getAll() {
35 log.debug("loading all");
36 return dao.getHibernateTemplate().loadAll(clazz);
37 }
38
39 @SuppressWarnings("unchecked")
40 public T load(long id) {
41 log.debug("loading " + id);
42 T obj = (T) dao.getHibernateTemplate().get(clazz, id);
43 if (obj == null)
44 log.warn("object not found loading " + id);
45 return obj;
46
47 }
48
49 public void remove(long id) {
50 log.debug("removing " + id);
51
52 Object o = dao.getHibernateTemplate().get(clazz, id);
53 if (o != null) {
54 dao.getHibernateTemplate().delete(o);
55 log.info("instance deleted from client with id " + id);
56 } else
57 log.debug("deleting inexistent object with id " + id);
58 }
59
60 public void save(T obj) {
61 log.debug("saving " + obj);
62 dao.getHibernateTemplate().saveOrUpdate(obj);
63 }
64
65 }