fly*_*ire 10 java database paging hibernate
如何在Hibernate中实现分页?该Query
对象有方法叫setMaxResults
和setFirstResult
这肯定是有帮助的.但是我在哪里可以得到结果总数,以便我可以显示结果最后一页的链接,并打印结果200到250的xxx?
sin*_*pop 15
您可以使用Query.setMaxResults(int results)和Query.setFirstResult(int offset).
编辑:没有办法知道你会得到多少结果.因此,首先您必须使用"select count(*)..."进行查询.有点难看,恕我直言.
您必须执行单独的查询以获得最大结果...并且在客户端第一次发出分页请求的时间A与发出另一个请求的时间B之间,如果添加了新记录或现在是某些记录的情况下符合条件,然后你必须再次查询最大值以反映这一点.我通常在HQL中这样做
Integer count = (Integer) session.createQuery("select count(*) from ....").uniqueResult();
Run Code Online (Sandbox Code Playgroud)
对于Criteria
查询,我通常会将数据推送到这样的DTO中
ScrollableResults scrollable = criteria.scroll(ScrollMode.SCROLL_INSENSITIVE);
if(scrollable.last()){//returns true if there is a resultset
genericDTO.setTotalCount(scrollable.getRowNumber() + 1);
criteria.setFirstResult(command.getStart())
.setMaxResults(command.getLimit());
genericDTO.setLineItems(Collections.unmodifiableList(criteria.list()));
}
scrollable.close();
return genericDTO;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18289 次 |
最近记录: |