Предположим, у меня есть следующий код:
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 - метка времени из дБ