如何通过Sort和Pageable使用Spring数据JPA来查询数据?

我正在尝试在我的项目中使用Spring数据JPA 。 我想知道是否有一个开箱即用的API来查询数据, Sort和页面。 当然,我知道我可以自己写这个方法,我只是想知道是否有一个开箱即用的方法。 我的DAO扩展JpaRepository ,我发现有以下方法可以调用:

 findAll(); findAll(Pageable pageable); findAll(Sort sort); 

但是findAll(Sort sort, Pageable pageable)没有这个方法,所以我很好奇。

有两种方法可以实现这一点:

 final PageRequest page1 = new PageRequest( 0, 20, Direction.ASC, "lastName", "salary" ); final PageRequest page2 = new PageRequest( 0, 20, new Sort( new Order(Direction.ASC, "lastName"), new Order(Direction.DESC, "salary") ) ); dao.findAll(page1); 

正如你所看到的,第二种forms更灵活,因为它允许为每个属性( lastName ASC, salary DESC )定义不同的方向。

Pageable还有一个选项来指定sorting。 从Java文档

 PageRequest(int page, int size, Sort.Direction direction, String... properties) 

创build一个应用了sorting参数的新的PageRequest。