Spring Data JPA 切片底层 SQL

Aur*_*ere 6 java sql spring spring-data-jpa

我正在阅读 Spring Data JPA 官方文档中关于PageSlice(强调我的)之间区别的这一段:

第一种方法允许您将 org.springframework.data.domain.Pageable 实例传递给查询方法,以将分页动态添加到静态定义的查询中。页面知道可用元素和页面的总数。它通过基础结构触发计数查询来计算总数。由于这可能很昂贵(取决于所使用的商店),您可以改为返回 Slice。Slice 只知道下一个 Slice 是否可用,这在遍历更大的结果集时可能就足够了。

我知道如何Page通过使用相同的 where 子句执行额外的计数查询来获取总元素,但是如何Slice通过单个查询知道其他元素是否可用?执行的 SQL 是什么?

Jen*_*der 5

Slice 如何通过单个查询了解其他元素是否可用?

Spring Data JPA 会选择比实际需要Slice更多的元素来填充,如果存在该附加元素,则还有另一个Slice可用。如果不是这是最后一次Slice

请参阅代码