/** * 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(); } }
|
相关推荐
Hibernate - DetachedCriteria 的完整用法文档描述
NULL 博文链接:https://chaoyi.iteye.com/blog/2152094
DetachedCriteria的查询方式汇总
NULL 博文链接:https://rmn190.iteye.com/blog/379302
DetachedCriteria
DetachedCriteria使用介绍
DetachedCriteria Criteria 使用方法 非常详细外加练习
使用 Hibernate Criteria && DetachedCriteria Queries演示Exists Clause非常简单的项目 安装 git clone https://github.com/RameshRM/hibernate-sample.git 跑步 mvn install 这是一个maven项目,依赖项是 ...
().findByCriteria(detachedCriteria) 方法可以很方便地根据DetachedCriteria 来返回查询结 果。 DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName(Name) 进行DetachedCriteria 实例的创建。
下面小编就为大家带来一篇浅谈DetachedCriteria和Criteria的使用方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
源文件 博文链接:https://kings008.iteye.com/blog/246773