加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 我们如何使用JPA计算LAST页面?

发布时间:2020-12-14 19:11:30 所属栏目:Java 来源:网络整理
导读:我想在我的Servlet / EJB / JPA-Hibernate项目中实现分页,但我无法弄清楚查询中只有一个页面如何知道我必须显示的页数 我用 setFirstResult(int first) ;setMaxResults(int max) ; 这工作正常,但我怎么知道我总共会有多少页呢? (Hibernate是我的JPA提供者,

我想在我的Servlet / EJB / JPA-Hibernate项目中实现分页,但我无法弄清楚查询中只有一个页面如何知道我必须显示的页数

我用

setFirstResult(int first) ;
setMaxResults(int max) ;

这工作正常,但我怎么知道我总共会有多少页呢?

(Hibernate是我的JPA提供者,但如果可能,我更愿意只使用JPA)

更新:COUNT()似乎是更好/最简单的解决方案;
但是与…相比,SELECT COUNT(*)FROM …的成本是多少?
executeQuery(“SELECT * FROM …).getListResult().size()?

最佳答案
AFAIK,您需要(1)计数或(2)检索完整的命中列表并在内存中进行分页.页数是总计数/页面大小的总和.

有几种方法可以统计,一种是使用COUNT(*)

Query query=em.createQuery("SELECT COUNT
(emp.empName) FROM Employee emp");

或另一个是使用投影

criteria.setProjection(Projections.rowCount());
int rowCount = (Integer) criteria.list().get(0);

请注意,我从未使用过这个,我只是在某个地方读过它.

我在这个答案中记录了一些关于分页的其他细节:

> client side sorting + hibernate paging

希望它有所帮助

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读