Kev*_*vin 5 java hibernate jpa
我想在我的Servlet/EJB/JPA-Hibernate项目中实现分页,但我无法弄清楚查询中只有一个页面如何知道我必须显示的页数
我用
setFirstResult(int first) ;
setMaxResults(int max) ;
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我怎么知道我总共会有多少页呢?
(Hibernate是我的JPA提供者,但如果可能,我更愿意只使用JPA)
更新:COUNT()似乎是更好/最简单的解决方案; 但与之SELECT COUNT(*) FROM ...相比,
成本可能是executeQuery("SELECT * FROM ...).getListResult().size()多少?
AFAIK,您需要(1)计数或(2)检索完整的命中列表并在内存中进行分页。页数是总计数/页大小的四舍五入。
计数的方法有很多种,一种是使用COUNT(*)like in
Query query=em.createQuery("SELECT COUNT
(emp.empName) FROM Employee emp");
Run Code Online (Sandbox Code Playgroud)
或者另一种方法是使用投影
criteria.setProjection(Projections.rowCount());
int rowCount = (Integer) criteria.list().get(0);
Run Code Online (Sandbox Code Playgroud)
请注意,我从未使用过这个,我只是在某处读过它。
我在此答案中记录了有关分页的其他一些详细信息:
希望有帮助
| 归档时间: |
|
| 查看次数: |
490 次 |
| 最近记录: |