如何在Spring Data JPA中将分页与条件查询相结合?

Mar*_*usz 13 java spring jpa spring-data spring-data-jpa

我使用PagingAndSortingRepository和findAll(Pageable pageable)方法来分页我的数据.我认为没有办法提供任何条件.例如,有时我想选择和分页地址city = NY.有没有办法同时提供条件和分页?

Oli*_*ohm 13

PagingAndSortingRepository只是增加了在分页模式非常基本的CRUD方法.如参考文档所述,您只需将Pageable参数添加到您定义的任何查询方法中,即可实现此查询的分页.

interface CustomerRepository implements Repository<Customer, Long> {

  Page<Customer> findByLastname(String lastname, Pageable pageable);

  List<Customer> findByFirstname(String firstname, Pageable pageable);
}
Run Code Online (Sandbox Code Playgroud)

第一种方法将返回Page包含页面元数据的元素,如可用的总元素等.要计算此数据,它将触发对派生的查询的附加计数查询.第二个查询方法返回纯切片结果集,而不执行计数查询.