问题描述
我正在使用Spring Boot中提供的Sort功能对我的结果进行排序。考虑具有诸如“ id”,“ name”和“ expertise”之类的属性的“ Employee”实体。
“ expertise”属性可以具有“ Java”,“ Python”,“ Admin”,“ Pascal”等值。我需要根据专业知识对员工进行排序,使其顺序如下-
- Python
- Java
- 帕斯卡
- 管理员
spring boot的“排序”功能中是否有任何方法可以实现这种排序?
解决方法
我假设您正在使用分页和排序存储库。否则,您将无法分类。对于分页和排序存储库,您必须将存储库方法扩展到PagingAndSortingRepository
现在,当您调用findall()方法时,还可以传递您的sort参数。例子-
List<Employee> employees = repository.findAll(Sort.by(Sort.Direction.DESC,"expertise"));
,
找到了可行的解决方案。对于每种专业知识,我添加了一个整数类型的列,名称为“ order_number”。我没有使用专业名称,而是开始使用order_number列进行排序,并且产生了预期的结果。