【发布时间】:2019-10-04 04:39:21
【问题描述】:
我正在阅读 Spring Data JPA 官方文档中关于 Page 和 Slice 之间区别的这一段(重点是我的):
第一种方法让您将 org.springframework.data.domain.Pageable 实例传递给查询方法,以将分页动态添加到静态定义的查询中。页面知道可用元素和页面的总数。它是通过基础设施触发计数查询来计算总数来实现的。 由于这可能很昂贵(取决于所使用的商店),您可以改为返回 Slice。 Slice 只知道下一个 Slice 是否可用,这在遍历更大的结果集时可能就足够了。
我知道Page 如何通过使用相同的 where 子句执行附加计数查询来获取总元素,但是 Slice 如何通过单个查询知道其他元素是否可用?执行的 SQL 是什么?
【问题讨论】:
-
我还想问一下,如果它是一种切片,那实际上会比可分页慢吗?即 PageRequest.of(0, 10, Direction.DESC, "createdTimestamp")
标签: java sql spring spring-data-jpa