Spring Data JPA slice基础SQL

时间:2019-05-16 20:47:21

标签: java sql spring spring-data-jpa

我正在阅读Spring Data JPA官方文档中有关PageSlice(重点是我)之间的区别的这一段:

  

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

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

1 个答案:

答案 0 :(得分:2)

  

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

Spring Data JPA选择的一个元素要比实际填充Slice所需的元素多(如果存在),则还有另一个Slice可用。如果不是,则这是最后一个Slice

See the code