/** * 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;
publicabstractclass AbstractManager extends HibernateDaoSupport {
privateboolean cacheQueries = false;
privateString queryCacheRegion;
publicvoid setCacheQueries(boolean cacheQueries){ this.cacheQueries = cacheQueries; }
publicvoid setQueryCacheRegion(String queryCacheRegion){ this.queryCacheRegion = queryCacheRegion; }
publicvoid save(finalObject entity){ getHibernateTemplate().save(entity); }
publicvoid persist(finalObject entity){ getHibernateTemplate().save(entity); }
publicvoid update(finalObject entity){ getHibernateTemplate().update(entity); }
publicvoid delete(finalObject entity){ getHibernateTemplate().delete(entity); }
publicObject load(finalClass entity, finalSerializable id){ return getHibernateTemplate().load(entity, id); }
publicObject get(finalClass entity, finalSerializable id){ return getHibernateTemplate().get(entity, id); }
publicList findAll(finalClass entity){ return getHibernateTemplate().find("from " + entity.getName()); }
publicList findByNamedQuery(finalString namedQuery){ return getHibernateTemplate().findByNamedQuery(namedQuery); }
publicList findByNamedQuery(finalString query, finalObject parameter){ return getHibernateTemplate().findByNamedQuery(query, parameter); }
publicList findByNamedQuery(finalString query, finalObject[] parameters){ return getHibernateTemplate().findByNamedQuery(query, parameters); }
publicList find(finalString query){ return getHibernateTemplate().find(query); }
publicList find(finalString query, finalObject parameter){ return getHibernateTemplate().find(query, parameter); }
public PaginationSupport findPageByCriteria(final DetachedCriteria detachedCriteria){ return findPageByCriteria(detachedCriteria, PaginationSupport.PAGESIZE, 0); }
public PaginationSupport findPageByCriteria(final DetachedCriteria detachedCriteria, finalint startIndex){ return findPageByCriteria(detachedCriteria, PaginationSupport.PAGESIZE, startIndex); }
public PaginationSupport findPageByCriteria(final DetachedCriteria detachedCriteria, finalint pageSize, finalint startIndex){ return(PaginationSupport) getHibernateTemplate().execute(new HibernateCallback(){ publicObject 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); }
publicList findAllByCriteria(final DetachedCriteria detachedCriteria){ return(List) getHibernateTemplate().execute(new HibernateCallback(){ publicObject doInHibernate(Session session)throws HibernateException { Criteria criteria = detachedCriteria.getExecutableCriteria(session); return criteria.list(); } }, true); }
publicint getCountByCriteria(final DetachedCriteria detachedCriteria){ Integer count = (Integer) getHibernateTemplate().execute(new HibernateCallback(){ publicObject doInHibernate(Session session)throws HibernateException { Criteria criteria = detachedCriteria.getExecutableCriteria(session); return criteria.setProjection(Projections.rowCount()).uniqueResult(); } }, true); return count.intValue(); } }
|