Как получить все результаты на одной странице с помощью Spring Data Pagination

Я хочу получить все результаты на одной странице, я пробовал с

Pageable p = new PageRequest(1, Integer.MAX_VALUE);
return customerRepository.findAll(p);

Выше не работает, есть ли способы добиться этого? Похоже, что этого нельзя достичь из пользовательского запроса, как задано здесь.


person Ruwanka Madhushan    schedule 05.02.2017    source источник
comment
И зачем вообще использовать пагинацию в таком случае? Имеет 0 смысла.   -  person Branislav Lazic    schedule 05.02.2017
comment
Да, вы правы ... но я пытаюсь создать API ... иногда он просто запрашивает все данные (с другим поисковым запросом) ... но должен отображаться в таблице, которая также используется для результатов с разбивкой на страницы в разное время. Поэтому я хочу сохранить формат ответа нетронутым.   -  person Ruwanka Madhushan    schedule 05.02.2017


Ответы (4)


Ваш запрос страницы неверен, потому что вы ищете результаты не на той странице. Так должно быть:

PageRequest.of(0, Integer.MAX_VALUE);

Первая страница результатов — 0. Поскольку вы возвращаете все записи, все они находятся на этой странице.

person Branislav Lazic    schedule 05.02.2017
comment
Этот ответ не идеален. Вы получите ограничение максимального размера страницы в 1000, что означает, что вы не получите все результаты, если ваши элементы превышают 1000. - person Max Peng; 13.04.2017
comment
@MaxPeng Это сильно зависит от типа хранилища данных. И вопрос в значительной степени не зависит от хранилища данных. - person Branislav Lazic; 13.04.2017
comment
@BranislavLazic Ну, я хочу сказать, что в данных spring есть небольшая ловушка, которая может переопределить максимальный размер страницы, который вы передали, см. github.com/spring- проекты/весна-данные-остальные/блоб/мастер/ - person Max Peng; 17.04.2017
comment
Это устарело на данный момент. Вам нужно использовать PageRequest.of(0, Integer.MAX_VALUE) - person radbrawler; 11.12.2018
comment
какой самый простой способ сделать первую страницу результатов 1? - person Don Code; 16.07.2019
comment
@DonCode делает запрос Top1 или First1 для одного результата. - person nurettin; 29.07.2019

Правильнее использовать Pageable.unpaged()

Pageable wholePage = Pageable.unpaged();
return customerRepository.findAll(wholePage);
person chekmare    schedule 25.12.2018

Если вы передадите null для Pageable, Spring проигнорирует его и принесет все данные.

Pageable p = null;
return customerRepository.findAll(p);
person Karthik Bose    schedule 08.10.2018

Начиная с [email protected] правильный синтаксис — PageRequest.of(0, Integer.MAX_VALUE). Вы можете посмотреть здесь

person radbrawler    schedule 11.12.2018