Метод findAll() из ReactiveRepository в Spring-boot возвращает не все документы. Он возвращает только 10 документов

#spring #spring-boot

#spring #spring-boot

Вопрос:

Я пытаюсь получить все документы с реактивным репозиторием в Spring-boot. Но findAll возвращает только 10 документов…

Пример кода:

 @Repository
interface DocRepository : ReactiveElasticsearchRepository<Doc, String> {}

@Document(indexName="test")
class Doc{ 
   @Id
   String id;
   String name;
}
docRepo : DocRepository
docRepo.findAll()<=== Only returns 10 documents
  

Как я могу получить все документы? .. пробовал метод take(N), но не работает.

Комментарии:

1. Возможно, это значение по умолчанию, вы можете использовать как docRepo.findAll(новый запрос страницы (1, 200)) или больше. Выборка всех данных даст вам очень плохую производительность в реальном времени.

2. @Eklavya-Проголосовавший не говорит спасибо ReactiveRepository не поддерживает запрос страницы. 🙁

3. В соответствии с документом вы можете docs.spring.io/spring-data/elasticsearch/docs/current/reference /… но, очевидно, не используя ReactiveElasticsearchRepository. И нашел подробности здесь также github.com/spring-projects/spring-data-elasticsearch/blob /… использование ReactiveSortingRepository

4. Спасибо, вы решили. с docRepo.findById(null, PageRequest(1,200))

5. Вы пробовали добавлять метод в репозиторий, например List<Doc> findAll(Pageable pageable); ? И просто вызовите, как в моем первом комментарии.

Ответ №1:

решаемая. с

docRepo.findById(null, PageRequest(1200))