如何从spring数据分页中检索排序属性和方向?

8tntrjer  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(264)

我正在构建一个api,它将调用另一个api并返回结果。我调用的api具有分页和排序机制,需要将以下查询参数添加到url:

?pageNumber=1&pageSize=20&sortField=id&sortDirection=asc

现在,我希望我的api使用spring可分页对象作为控制器方法中的参数,因此,根据spring文档,传递给我的新api的url将是:

?page=1&size=20&sort=id,asc

因此,为了将接收到的可分页对象Map到需要传递给uinderlying api的所需查询参数,我需要从可分页对象检索分页和排序信息。至于 pageSize 以及 pageNumber 这很直接:

pageable.getPageNumber()
pageable.getPageSize()

但我怎样才能找回索特菲尔德和索特方向? pageable.getSort() 返回sort对象,我无法从中找到检索所需内容的方法-sortfield值(具有属性名称的字符串)和sortdirection值(asc或desc)
谢谢

ugmeyewa

ugmeyewa1#

Pageable::getSort 会给你一个 Sort ,这是一个 IterableSort.Order s。你需要迭代每一个。它们包含您要查找的属性。

Sort sort = Sort.by(Sort.Direction.ASC, "abc");

for (Sort.Order order : sort)
{
    System.out.println("Property: " + order.getProperty());
    System.out.println("Direction: " + order.getDirection());
}

印刷品

Property: abc
Direction: ASC

相关问题