Hibernate DetachedCriteria方式分页查询返回总记录数
2017-05-03 23:40
337 查看
最近在使用Hibernate进行分页查询的时候,发现Hibernate分页有一个瓶颈,就是只能访问查询对应的记录,并不能返回符合条件的总条数,网上给的很多策略都是再写一个方法,通过HQL查询总记录数,个人感觉这种方式太复杂了,如果涉及到复杂查询的时候,HQL也不好写,既然Hibernate是个这么流行的ORM框架,我相信它肯定提供了对应的方式,所以尝试了下,发现如下方式更为人性化。
1.通过设置Projections.rowCount()查询总记录数
2.取消查询总条数的设置
3.正常分页查询
如果日志设置打印SQL的话,可以发现查询总条数的发送的SQL就是select count(*) from…,即有效率保障,使用起来还方便
1.通过设置Projections.rowCount()查询总记录数
// 查询总条数 Long totalCount = (Long) detachedCriteria.setProjection(Projections.rowCount()).getExecutableCriteria(this.getHibernateTemplate().getSessionFactory().getCurrentSession()).uniqueResult();
2.取消查询总条数的设置
// 取消查询总条数 进行正常分页查询 detachedCriteria.setProjection(null);
3.正常分页查询
this.getHibernateTemplate().findByCriteria(detachedCriteria, startIndex, pageSize);
如果日志设置打印SQL的话,可以发现查询总条数的发送的SQL就是select count(*) from…,即有效率保障,使用起来还方便
相关文章推荐
- Hibernate里面如何使用DetachedCriteriaCriteria 实现多条件分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序
- Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序
- Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序
- Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序
- 应用Hibernate3的DetachedCriteria实现分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- 应用Hibernate3的DetachedCriteria实现分页查询
- Hibernate3的DetachedCriteria实现分页查询
- 使用Hibernate criteria进行分页查询时,如何实现一次查询取得总记录数和分页后结果集
- 关于Hibernate的DetachedCriteria查询的addOrder问题的解决办法
- DetachedCriteria查询、分页类和分页按钮
- 关于-NHibernate使用Criteria分页显示并返回记录总数
- 关于Hibernate中fatch=eager的bag集合(一个java List)使用Criteria查询出现重复记录的问题
- Hibernate的几种查询方式-HQL,QBC,QBE,离线查询,复合查询,分页查询
- Hibernate Criteria查询_查询一条记录
- (转)NHibernate使用Criteria分页显示并返回记录总数
- 关于-NHibernate使用Criteria分页显示并返回记录总数