import java.util.List;\r
\r
import org.apache.log4j.Logger;\r
+import org.hibernate.Session;\r
+import org.hibernate.SessionFactory;\r
+import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.dao.DataAccessException;\r
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;\r
import org.springframework.orm.hibernate3.HibernateTemplate;\r
+import org.springframework.stereotype.Component;\r
import org.springframework.stereotype.Repository;\r
\r
+import eu.etaxonomy.cdm.model.common.Enumeration;\r
+\r
\r
/**\r
* @author a.mueller\r
*\r
*/\r
-public abstract class DaoBase<T, ID extends Serializable> \r
- extends HibernateDaoSupport implements IDao<T, ID> {\r
+@Component\r
+public abstract class DaoBase<T, ID extends Serializable> implements IDao<T, ID> {\r
\r
static Logger logger = Logger.getLogger(DaoBase.class);\r
\r
+ @Autowired\r
+ private SessionFactory factory;\r
protected Class<T> type;\r
\r
public DaoBase(Class<T> type){\r
this.type = type;\r
- logger.debug("DAO of type [" + type.getSimpleName() + "] created");\r
+ logger.debug("Creating DAO of type [" + type.getSimpleName() + "]");\r
}\r
\r
-\r
- public void saveOrUpdate(T transientObject) throws DataAccessException {\r
- HibernateTemplate ht = getHibernateTemplate();\r
- ht.saveOrUpdate(transientObject);\r
+ protected Session getSession(){\r
+ Session s = factory.getCurrentSession();\r
+ s.beginTransaction();\r
+ return s;\r
}\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.persistence.dao.IDAO#save(java.lang.Object)\r
- */\r
- public ID save(T newInstance) throws DataAccessException {\r
- HibernateTemplate ht = getHibernateTemplate();\r
- return (ID)ht.save(newInstance);\r
+ \r
+ public void saveOrUpdate(T transientObject) throws DataAccessException {\r
+ getSession().saveOrUpdate(transientObject);\r
+ }\r
+\r
+ public Serializable save(T newInstance) throws DataAccessException {\r
+ return getSession().save(newInstance);\r
}\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.persistence.dao.IDAO#update(java.lang.Object)\r
- */\r
public void update(T transientObject) throws DataAccessException {\r
- //TODO update kommt in einem O/R-Mapping eigentlich gar nich vor!!\r
- getHibernateTemplate().update(transientObject);\r
+ getSession().update(transientObject);\r
}\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.persistence.dao.IDAO#delete(java.lang.Object)\r
- */\r
public void delete(T persistentObject) throws DataAccessException {\r
- getHibernateTemplate().delete(persistentObject);\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.persistence.dao.IDAO#findById(java.io.Serializable)\r
- */\r
- public T findById(ID id) throws DataAccessException {\r
- return (T)getHibernateTemplate().get(type,id);\r
+ getSession().delete(persistentObject);\r
}\r
\r
-//********************************************// \r
- \r
- \r
- public abstract List<T> find(String queryString);\r
-\r
+ public T findById(Integer id) throws DataAccessException {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ }\r
\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.persistence.dao.IDAO#exists(java.io.Serializable)\r
- */\r
- public Boolean exists(ID id) {\r
+ \r
+ public Boolean exists(Integer id) {\r
// TODO Auto-generated method stub\r
return null;\r
}\r
\r
- public List<T> list100() {\r
- HibernateTemplate ht = getHibernateTemplate();\r
- ht.setMaxResults(100);\r
- return ht.loadAll(type); \r
+\r
+ public List<T> list(Integer limit) {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
}\r
\r
+ public abstract List<T> find(String queryString);\r
}\r
package eu.etaxonomy.cdm.persistence.dao;
+import java.io.Serializable;
import java.util.List;
import org.apache.log4j.Logger;
* @version 1.0
* @created 02-Nov-2007 19:36:10
*/
-public interface IDao<T, ID> {
+public interface IDao<T, ID extends Serializable> {
public void saveOrUpdate(T transientObject) throws DataAccessException;
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.persistence.dao.IDAO#save(java.lang.Object)
*/
- public ID save(T newInstance) throws DataAccessException;
+ public Serializable save(T newInstance) throws DataAccessException;
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.persistence.dao.IDAO#update(java.lang.Object)
public List<T> find(String queryString);
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.persistence.dao.IDAO#exists(java.io.Serializable)
- */
public Boolean exists(ID id);
- public List<T> list100();
+ public List<T> list(Integer limit);
}