/** * Created on 2005-7-12 */ package com.javaeye.common.business;
import java.io.Serializable; import java.util.List;
import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.criterion.DetachedCriteria; import org.hibernate.criterion.Projections; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.javaeye.common.util.PaginationSupport;
public abstract class AbstractManager extends HibernateDaoSupport {
private boolean cacheQueries = false;
private String queryCacheRegion;
public void setCacheQueries(boolean cacheQueries) { this.cacheQueries = cacheQueries; }
public void setQueryCacheRegion(String queryCacheRegion) { this.queryCacheRegion = queryCacheRegion; }
public void save(final Object entity) { getHibernateTemplate().save(entity); }
public void persist(final Object entity) { getHibernateTemplate().save(entity); }
public void update(final Object entity) { getHibernateTemplate().update(entity); }
public void delete(final Object entity) { getHibernateTemplate().delete(entity); }
public Object load(final Class entity, final Serializable id) { return getHibernateTemplate().load(entity, id); }
public Object get(final Class entity, final Serializable id) { return getHibernateTemplate().get(entity, id); }
public List findAll(final Class entity) { return getHibernateTemplate().find("from " + entity.getName()); }
public List findByNamedQuery(final String namedQuery) { return getHibernateTemplate().findByNamedQuery(namedQuery); }
public List findByNamedQuery(final String query, final Object parameter) { return getHibernateTemplate().findByNamedQuery(query, parameter); }
public List findByNamedQuery(final String query, final Object[] parameters) { return getHibernateTemplate().findByNamedQuery(query, parameters); }
public List find(final String query) { return getHibernateTemplate().find(query); }
public List find(final String query, final Object parameter) { return getHibernateTemplate().find(query, parameter); }
public PaginationSupport findPageByCriteria(final DetachedCriteria detachedCriteria) { return findPageByCriteria(detachedCriteria, PaginationSupport.PAGESIZE, 0); }
public PaginationSupport findPageByCriteria(final DetachedCriteria detachedCriteria, final int startIndex) { return findPageByCriteria(detachedCriteria, PaginationSupport.PAGESIZE, startIndex); }
public PaginationSupport findPageByCriteria(final DetachedCriteria detachedCriteria, final int pageSize, final int startIndex) { return (PaginationSupport) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Criteria criteria = detachedCriteria.getExecutableCriteria(session); int totalCount = ((Integer) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue(); criteria.setProjection(null); List items = criteria.setFirstResult(startIndex).setMaxResults(pageSize).list(); PaginationSupport ps = new PaginationSupport(items, totalCount, pageSize, startIndex); return ps; } }, true); }
public List findAllByCriteria(final DetachedCriteria detachedCriteria) { return (List) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Criteria criteria = detachedCriteria.getExecutableCriteria(session); return criteria.list(); } }, true); }
public int getCountByCriteria(final DetachedCriteria detachedCriteria) { Integer count = (Integer) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Criteria criteria = detachedCriteria.getExecutableCriteria(session); return criteria.setProjection(Projections.rowCount()).uniqueResult(); } }, true); return count.intValue(); } }
|