JpaSpecificationExecutor附带的方法是不够的,它们都没有给我我想要的东西:
Page<T> findAll(Specification<T> spec, Pageable pageable)
List<T> findAll(Specification<T> spec)
List<T> findAll(Specification<T> spec, Sort sort)
Run Code Online (Sandbox Code Playgroud)
第一种方法执行分页查询和计数查询.接下来的2个根本不执行分页.我需要的是以下之一:
Slice<T> findAll(Specification<T> spec, Pageable pageable)
List<T> findAll(Specification<T> spec, Pageable pageable)
Run Code Online (Sandbox Code Playgroud)
通过不扩展JpaSpecificationExecutor,我能够执行两个查询,但计数查询也是如此.在我的情况下,必须避免计数查询,因为它非常昂贵.问题是如何?
我在Spring Jpa Data 文档中阅读了关于两个不同类型的对象的信息,这些文档是在您对存储库进行动态查询时进行的.
页面和切片
Page<User> findByLastname(String lastname, Pageable pageable);
Slice<User> findByLastname(String lastname, Pageable pageable);
Run Code Online (Sandbox Code Playgroud)
所以,我试图找到一些文章或任何关于主要差异和两者的不同用法,性能如何变化以及排序如何影响两种类型的查询.
有没有人有这种类型的知识,文章或一些好的信息来源?