基于多个字段和每个字段对列表进行排序,可以在不同的方向上进行排序



寻找排序班级雇员

的列表
class Employee {
String name;
int age;
String dob;    
}

我希望将列表排序,例如名称相等,那么如果年龄也相等,则请检查DOB。所有这些都可以朝着不同的方向发展。例如

名称可以是上升命令,年龄可以是下降订单。

我在REST控制器中使用的URL

orderBy=name,desc&orderBy=age,asc&&orderBy=dob,asc

我正在寻找使用Pagabe的弹簧数据JPA。

但是问题是数据库中的出生日期。

所以我需要将其转换为迄今为止。

然后,我考虑在Guava订购的下一个选项。

Ordering<Employee> orderPrimary = Ordering.natural().onResultOf(new EmployeeOrderByName());
Ordering<Employee> orderSecondary = Ordering.natural().reverse().onResultOf(new EmployeeOrderByAge()); 
orderPrimary.compound(orderSecondary);

,但在URL字段中可以按不同的顺序且可以朝着不同的方向,在这里我不确定如何进行。

满足我要求的任何最佳方法。

您可以尝试使用@Converter将DOB字符串转换为/从日期转换为DOB字符串,然后在标准或查询中使用订单。...但是您需要进行一些试用和错误,因为转换器与查询不太好(而且很可能也有标准(...这是有关转换器的教程

最新更新