Применить фильтр к объектам страницы - PullRequest
0 голосов
/ 02 ноября 2018

Я создаю API, который принимает для моего запроса "/ search" несколько параметров, чтобы можно было фильтровать результаты с помощью findAll(Example<T> example). На втором этапе я фильтрую нетривиальные типы (Date), чтобы сузить свои результаты, что прекрасно работает.

Теперь возникает проблема, когда я хочу реализовать нумерацию страниц. Spring data предлагает метод findAll(Example<T> example, Pageable page), который создает для меня элемент Page<T>, который больше не применим к моим механизмам фильтрации. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} * * * * * Преобразует «Страницу» в «Streamable».

Как я могу дополнительно отфильтровать Page<T> объект без использования непреднамеренного формата данных?

1 Ответ

0 голосов
/ 01 апреля 2019

Я решил проблему, сначала отфильтровав свой набор результатов без информации о нумерации страниц, а затем применив представленные параметры нумерации страниц.

int startIndex = page * size;
int endIndex = (startIndex + size) > myList.size() ? myList.size() : (startIndex + size);
JsonPage<>(myList.subList(startIndex, endIndex), PageRequest.of(page, size), myList.size());

Это гораздо более интуитивно понятно, чем создание объекта страницы и распаковка его для получения фильтруемых объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...