Как отсортировать результаты на странице на стороне Java - PullRequest
0 голосов
/ 18 апреля 2019

Предположим, у меня есть следующий код:

Page page = repository.findAll(Entity.class, pageable);

У меня есть особые требования к сортировке, т. Е. Я должен сортировать поля даты и времени только по дате без времени. Я нашел несколько способов сделать это, используя функции postgresql, такие как date_trunc, но я не хочу переходить к такому подходу, потому что у меня есть более сложные правила сортировки, которые сложно реализовать в функциях базы данных.

Мой вопрос: Как я могу отсортировать выводимые на страницу результаты на стороне Java, используя полную мощность данных пружины (классы Sort.Order, несколько сортировок одновременно и т. Д.)

В идеале я хотел написать что-то вроде этого:

    Page page = repository.findAll(Entity.class, pageable);
    page.sortWithMap("mySpecificDate", (date) -> truncateToDate(date))

Что я ожидаю: Данные Spring сначала сопоставят мою дату с усеченной датой, а затем применят сортировку, представленную на странице. Как это сделать?

OR

Как реализовать в спецификациях следующую инструкцию db:

select date_trunc('day', to_timestamp(1548064880000 / 1000))

где - 1548064880000 - метка времени из дБ

...