Пейджинг и сортировка по перечислению - PullRequest
0 голосов
/ 08 октября 2019

Мой сервис возвращает страницу элементов, и я хочу иметь возможность сортировать ее по многим полям. Пока что я могу отсортировать его по всем полям, кроме этого поля перечисления:

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;
    }

Пока мой вид выглядит так (статус является полем перечисления)

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;
            }
        }

Как вы и ожидаетеЯ сортирую по статусу, сортируется по алфавиту;в то время как мне нужно заказать его, как объявлено в перечислении (TO_DO, затем ROUGH_DRAFT, затем WAITING_FOR_VALIDATION ....). Есть ли какое-то решение для этого, например, сделать мой заказ нумерации или что-то в этом роде. Заранее спасибо

...