如何通过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。