package com.joe.utilities.core.hibernate.repository.impl; import java.util.Collection; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.joe.utilities.core.hibernate.repository.IGenericRepository; /** * The Class GenericRepository. Provides repository-level access to generic * Hibernate template functions. This can then be called from service layer * instead of creating simplistic feature-specific repository methods that do * the same thing. */ public class GenericRepository extends HibernateDaoSupport implements IGenericRepository { /** Commons logger. */ private static Log log = LogFactory.getLog(GenericRepository.class); /** * The Constructor. * * @param template * the template */ public GenericRepository(HibernateTemplate template) { setHibernateTemplate(template); } /** * Save object. * * @param entity * the entity */ public void saveObject(Object entity) { getHibernateTemplate().save(entity); } /** * Save all. * @param entities the entities */ public void saveAll(Collection entities) { for (Object entity : entities) { getHibernateTemplate().save(entity); } } /** * Update all. * @param entities the entities */ public void updateAll(Collection entities) { for (Object entity : entities) { getHibernateTemplate().update(entity); } } /** * Save or update object. * * @param entity * the entity */ public void saveOrUpdateObject(Object entity) { getHibernateTemplate().saveOrUpdate(entity); } /** * Delete object. * * @param entity * the entity */ public void deleteObject(Object entity) { getHibernateTemplate().delete(entity); } /** * Delete objects. * * @param entities * the entities */ public void deleteObjects(Collection<Object> entities) { getHibernateTemplate().deleteAll(entities); } /** * Flush hibernate session. */ public void flushHibernateSession() { getHibernateTemplate().flush(); } /** * Save or update all. * * @param entities * the entities */ public void saveOrUpdateAll(Collection<Object> entities) { getHibernateTemplate().saveOrUpdateAll(entities); } /* (non-Javadoc) * @see com.med.utilities.repository.hibernate.IGenericRepository#loadAll(java.lang.Class) */ public <T> List<T> loadAll(Class<T> entityClass) { return getHibernateTemplate().loadAll(entityClass); } /** * @param entity */ public void evict(Object entity) { getHibernateTemplate().evict(entity); } /** * @param evictedEntities */ public void evictAll(Collection evictedEntities) { for (Object entity : evictedEntities) { getHibernateTemplate().evict(entity); } } }