【问题标题】:Sort based on property values in spring boot在spring boot中根据属性值排序
【发布时间】:2020-09-24 18:38:59
【问题描述】:

我正在使用 Spring Boot 中提供的排序功能对结果进行排序。考虑一个具有“id”、“name”和“expertise”等属性的实体“Employee”。

“expertise”属性可以具有“Java”、“Python”、“Admin”、“Pascal”等值。我需要根据专业知识对员工进行排序,使其排序如下 -

  1. Python
  2. Java
  3. 帕斯卡
  4. 管理员

spring boot 的 Sort 特性中有没有办法实现这样的排序?

【问题讨论】:

    标签: spring spring-boot spring-mvc spring-data-jpa


    【解决方案1】:

    找到了一个可行的解决方案。对于每个专业知识,我添加了一个整数类型的列,名称为“order_number”。我没有使用专业名称,而是开始使用 order_number 列进行排序,它产生了预期的结果。

    【讨论】:

      【解决方案2】:

      我假设您正在使用分页和排序存储库。没有它,您将无法排序。对于分页和排序存储库,您必须将存储库方法扩展到 PagingAndSortingRepository

      现在,当您调用 findall() 方法时,您也可以传递排序参数。例子-

      List<Employee> employees = repository.findAll(Sort.by(Sort.Direction.DESC, "expertise"));
      

      【讨论】:

      • 您提供的代码将根据专业值按降序对员工进行排序。我不是在寻找降序/升序。我正在寻找帖子中提供的订单。例如,具有 Python 专业知识的员工将首先出现,然后是具有 Java 专业知识的员工,依此类推。
      • 知道了。那么这将不起作用。此外,没有可用的库方法来执行此操作。您必须编写自定义代码。如果记录太多(以十万为单位),性能可能会受到影响
      猜你喜欢
      • 1970-01-01
      • 2022-01-14
      • 2019-12-07
      • 2018-01-04
      • 2020-04-16
      • 2021-12-15
      • 2014-07-25
      • 2014-08-21
      • 1970-01-01
      相关资源
      最近更新 更多