寻找对员工类列表进行排序
class Employee {
String name;
int age;
String dob;
}
我希望对列表进行排序,如果名称等于年龄,如果年龄也相等,那么请检查dob。 所有这些都可以在不同的方向。例如
名称可以升序,年龄可以降序。
我在Rest Controller中使用的网址
orderBy=name,desc&orderBy=age,asc&&orderBy=dob,asc
我正在使用Pageable寻找Spring Data JPA。
但问题是数据库中的出生日期是字符串。
所以我需要将其转换为日期。
然后下一个选项我想到了在番石榴中订购。
Ordering<Employee> orderPrimary = Ordering.natural().onResultOf(new EmployeeOrderByName());
Ordering<Employee> orderSecondary = Ordering.natural().reverse().onResultOf(new EmployeeOrderByAge());
orderPrimary.compound(orderSecondary);
但是在Url字段中可以采用不同的顺序并且可以处于不同的方向,这里我不知道如何继续。
满足我要求的最佳方法。
答案 0 :(得分:0)
您可以尝试使用@Converter
将dob字符串转换为/来自Date,然后在条件或查询中使用order by ....但是您需要进行一些试验和错误,因为转换器不起作用很好的查询(也很可能与Criteria一起)...... here is a tutorial on Converter