正如标题所述,我想只检索最多1000行,但如果查询结果为1001,我想以某种方式知道。我已经看到了用第二个查询检查结果中的行数的示例,但是我希望在查询中使用它来获取1000行。我正在使用hibernate和条件从我的数据库接收我的结果。数据库是MS SQL
答案 0 :(得分:2)
你想要的东西不是通用的。
分页的两种常用模式是:
使用第一个模式,您的分页具有更多功能,因为您可以显示总页数,并允许用户直接跳转到他想要的页面,但是您可以以额外的SQL查询为代价获得这种可能性。
使用第二种模式,您可以只告诉用户是否还有一页数据。然后,用户可以跳转到下一页(或他已经看过的任何上一页)。
答案 1 :(得分:1)
您希望获得两个不同查询的两个信息:
从......
从...
您不能在单个执行的Criteria或JPQL查询中执行此操作 但是根据所使用的DBMS,您可以使用本机SQL查询(顺便使用子查询)以不同的方式执行此操作。
通过制作它,您可以使代码更复杂,使其更依赖于特定的DBMS,并且您可能无法在性能方面获得真正的东西。
我认为您应该使用计数和第二个查询来获取行。
如果以后你想利用计数结果来获取下一个结果,你应该赞成使用Hibernate提供的分页机制,而不是以自定义方式进行。