页面<>与切片<>什么时候用哪个?
我读过 Spring Jpa Data 文档 当您分页"从存储库中生成的动态查询时,有关两种不同类型的对象.
I've read in Spring Jpa Data documentation about two different types of objects when you 'page' your dynamic queries made out of repositories.
页面和切片
Page<User> findByLastname(String lastname, Pageable pageable);
Slice<User> findByLastname(String lastname, Pageable pageable);
所以,我试图找到一些文章或任何东西来讨论两者的主要区别和不同用法,性能如何变化以及排序strong> 影响这两种类型的查询.
So, I've tried to find some articles or anything talking about main difference and different usages of both, how performance changes and how sorting affercts both type of queries.
有没有人拥有这类知识、文章或一些好的信息来源?
Does anyone has this type of knowledge, articles or some good source of information?
推荐答案
Page
扩展 Slice
并通过触发计数查询来了解可用元素和页面的总数.来自 Spring Data JPA 文档一个>:
Page
知道可用元素和页面的总数.它通过基础设施触发计数查询来计算总数来实现这一点.由于根据所使用的商店,这可能会很昂贵,因此 Slice
可以用作返回.Slice
只知道是否有下一个 Slice
可用,这在遍历更大的结果集时可能就足够了.
A
Page
knows about the total number of elements and pages available. It does so by the infrastructure triggering a count query to calculate the overall number. As this might be expensive depending on the store used,Slice
can be used as return instead. ASlice
only knows about whether there’s a nextSlice
available which might be just sufficient when walking through a larger result set.
相关文章