#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))