Java 按枚举分页和排序

Java 按枚举分页和排序,java,spring-boot,sorting,enumeration,pageable,Java,Spring Boot,Sorting,Enumeration,Pageable,我的服务返回一页元素,我希望能够按许多字段对其进行排序。 到目前为止,我可以按除此枚举字段以外的所有字段对其进行排序: enum ActionStatusEnum { TO_DO("ToDo"), ROUGH_DRAFT("Brouillon"), WAITING_FOR_VALIDATION("En attente de validation"), VALIDATED("Validée"), ...... private String labe

我的服务返回一页元素,我希望能够按许多字段对其进行排序。 到目前为止,我可以按除此枚举字段以外的所有字段对其进行排序:

enum ActionStatusEnum {
    TO_DO("ToDo"),
    ROUGH_DRAFT("Brouillon"),
    WAITING_FOR_VALIDATION("En attente de validation"),
    VALIDATED("Validée"),
    ......

    private String label;

    ActionStatusEnum(String value) {
        label = value;
    }

    public String getLabel() {
        return label;
    }
到目前为止,我的排序是这样的(状态是枚举字段)

正如您所期望的,每当我按状态排序时,它都会按字母顺序排序;而我需要按照枚举中声明的顺序对其进行排序(要做,然后粗略起草,然后等待验证…)。
有什么解决办法吗,比如定制枚举排序之类的。提前感谢

您从哪里读取值?数据库、文件或任何其他类型的内存?也许除了排序之外,你还可以想到已经排序的接收值?@Hayra from DB,但我不能只获取预先排序的值,因为用户可以选择使用哪种排序及其使用顺序,就像他可以选择按日期排序然后按状态排序一样。。。
for (String sort : sorts) {
            switch(sort) {
                case "createDate":
                    s = new Sort(Sort.Direction.DESC, "creationDate");
                    mySort = mySort == null ? s : mySort.and(s);
                    break;
                case "rubric":
                    s = new Sort(Sort.Direction.ASC, "task.rubric");
                    mySort = mySort == null ? s : mySort.and(s);
                    break;

                ........ // other cases

                case "status":
                    s = new Sort(Sort.Direction.DESC, "status");
                    break;
                default :
                    s = new Sort(Sort.Direction.DESC, "submissionDate");
                    mySort = mySort == null ? s : mySort.and(s);
                    break;
            }
        }