Grails 对同一事务的数据库结果进行分页?

发布于 2024-11-07 23:35:20 字数 119 浏览 0 评论 0原文

我希望能够使用 CriteriaBuilder 之类的工具对数据库结果进行分页,但我需要结果在单个时间点上保持一致。

有没有一种简单的方法可以以某种方式分页并将选择保留在同一事务/中

I'd like to be able to paginate my database results with something like the CriteriaBuilder, but I need my results to be consistent as to a single point in time.

Is there an easy way to somehow paginate and keep the select within the same transaction/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

橙味迷妹 2024-11-14 23:35:20

您是否放弃使用 ScrollableResult 将整个结果集存储在内存中?

看看这里

DomainObject.createCriteria( ).scroll{} 返回一个 ScrollableResult

Have you discarded to store the whole result set in memory using ScrollableResult?

Look here

DomainObject.createCriteria().scroll{} returns a ScrollableResult

A君 2024-11-14 23:35:20

根据当前页码,在条件中指定所需的偏移量。

def results = DomainClass.withCriteria {
   firstResult ( (currentPageNumber - 1) * itemsPerPage)
   maxResults (itemsPerPage)
}

要了解总页数,您需要另一个查询:

def numberOfPages = DomainClass.count()
if(numberOfPages != 0) numberOfPages = numberOfPages / itemsPerPage + 1

Specify the offset you want in the criteria, based in the current page number.

def results = DomainClass.withCriteria {
   firstResult ( (currentPageNumber - 1) * itemsPerPage)
   maxResults (itemsPerPage)
}

To know the total number of pages, you'll need another query:

def numberOfPages = DomainClass.count()
if(numberOfPages != 0) numberOfPages = numberOfPages / itemsPerPage + 1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文