如何通过 Sort 和 Pageable 使用 Spring data JPA 开箱即用地查询数据?

新手上路,请多包涵

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

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

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

原文由 Tom 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 339
2 个回答

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

 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);

如您所见,第二种形式更灵活,因为它允许为每个属性定义不同的方向( lastName ASC, salary DESC )。

原文由 Tomasz Nurkiewicz 发布,翻译遵循 CC BY-SA 3.0 许可协议

Pageable 也有一个选项来指定排序。来自 java文档

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

创建一个应用了排序参数的新 PageRequest。

原文由 gkamal 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题