gpt4 book ai didi

java - 我们如何使用 JPA 计算最后一页?

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:09 25 4
gpt4 key购买 nike

我想在我的 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);

请注意,虽然我从未使用过这个,但我只是在某处阅读过它。

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

希望对你有帮助

关于java - 我们如何使用 JPA 计算最后一页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3053368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com