Hibernate限制结果量,但检查更多

时间:2017-04-19 07:20:49

标签: java hibernate

正如标题所述,我想只检索最多1000行,但如果查询结果为1001,我想以某种方式知道。我已经看到了用第二个查询检查结果中的行数的示例,但是我希望在查询中使用它来获取1000行。我正在使用hibernate和条件从我的数据库接收我的结果。数据库是MS SQL

2 个答案:

答案 0 :(得分:2)

你想要的东西不是通用的。

分页的两种常用模式是:

  1. 使用2个查询:第一个计数,下一个获取结果页
  2. 只使用一个查询,其中您获取的结果多于您在页面上显示的结果
  3. 使用第一个模式,您的分页具有更多功能,因为您可以显示总页数,并允许用户直接跳转到他想要的页面,但是您可以以额外的SQL查询为代价获得这种可能性。

    使用第二种模式,您可以只告诉用户是否还有一页数据。然后,用户可以跳转到下一页(或他已经看过的任何上一页)。

答案 1 :(得分:1)

您希望获得两个不同查询的两个信息:

  • 从......

  • 中选择(计数)
  • 从...

  • 中选择col1,col2

您不能在单个执行的Criteria或JPQL查询中执行此操作 但是根据所使用的DBMS,您可以使用本机SQL查询(顺便使用子查询)以不同的方式执行此操作。

通过制作它,您可以使代码更复杂,使其更依赖于特定的DBMS,并且您可能无法在性能方面获得真正的东西。
我认为您应该使用计数和第二个查询来获取行。

如果以后你想利用计数结果来获取下一个结果,你应该赞成使用Hibernate提供的分页机制,而不是以自定义方式进行。