gpt4 book ai didi

spring - 如何从 PageRequest 禁用计数查询以获取总页数?

转载 作者:行者123 更新时间:2023-12-04 04:55:27 24 4
gpt4 key购买 nike

我们将 Spring Data 与 PageRequest 一起使用,并获得了大量数据。除了为获取总页数而执行的查询外,所有查询都以最佳方式执行。有没有办法禁用此功能,或者我们很可能必须实现自己的 Pageable?

http://static.springsource.org/spring-data/data-commons/docs/1.3.2.RELEASE/api/org/springframework/data/domain/PageRequest.html

http://static.springsource.org/spring-data/data-commons/docs/1.3.2.RELEASE/api/org/springframework/data/domain/Pageable.html

编辑:经过进一步分析,我认为解决此问题的唯一方法是不使用 Spring Data 并使用 EntityManager,因为它允许设置起始行和要返回的记录数。我们只需要下一页是否可用,因此我们只需检索一条额外的记录。我们还需要一个动态查询,这在 Spring Data 中似乎是不可能的。

编辑 2:看起来我只是没有等待足够长的时间来获得一些回应。多谢你们!!!

最佳答案

实现这一点的方法是简单地使用 List作为返回值。例如,对于这样定义的存储库:

interface CustomerRepository extends Repository<Customer, Long> {

List<Customer> findByLastname(String lastname, Pageable pageable);
}

查询执行引擎将应用 Pageable 提交的偏移量和页面大小。但不会触发额外的计数查询,因为我们不需要构造 Page实例。这也记录在 relevant sections的引用文档。

更新:如果你想要 Page的下一页/上一页|但仍然跳过您可能使用的计数查询 Slice 作为返回值。

关于spring - 如何从 PageRequest 禁用计数查询以获取总页数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12644749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com