我有一个实体如下
Class Person{
String id;
String name;
String numberOfHands;
}
使用 Spring Data Rest (Gosling Release Train),我可以指定
localhost/Person?sort=name,asc
用于排序名称名称升序。现在,在我需要按 numberOfHands 降序和名称升序排序的情况下。我可以指定
localhost/Person?sort=numberOfHands,name,asc
但是,我无法指定
localhost/Person?sort=numberOfHands,desc,name,asc
有没有办法指定多个排序顺序?
谢谢!
原文由 rakpan 发布,翻译遵循 CC BY-SA 4.0 许可协议
解决方案(tl;dr)
当想要对多个字段进行排序时,您只需在 URI 中多次放置
sort
参数。例如your/uri?sort=name,asc&sort=numberOfHands,desc
。然后,Spring Data 能够构造一个Pageable
具有多种类型的对象。解释
关于如何为 URI 中的参数提交多个值,并没有真正定义的标准。请参阅 在 GET 请求中为相同参数名称传递多个值的正确方法。
然而, Java Servlet 规范 中有一些信息暗示了 Java servlet 容器如何解析请求参数。
该部分进一步说明的示例(尽管它混合了请求和正文数据)
此示例显示,当参数(示例中的
a
)出现多次时,结果将聚合到String[]
中。