diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepository.java b/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepository.java index 2d7b1ef11..66919a460 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepository.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepository.java @@ -19,6 +19,7 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import org.reactivestreams.Publisher; +import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.elasticsearch.core.ReactiveElasticsearchOperations; import org.springframework.data.elasticsearch.core.SearchHit; @@ -46,14 +47,6 @@ public class SimpleReactiveElasticsearchRepository implements ReactiveEla this.elasticsearchOperations = elasticsearchOperations; } - @Override - public Flux findAll(Sort sort) { - - return elasticsearchOperations - .search(Query.findAll().addSort(sort), entityInformation.getJavaType(), entityInformation.getIndexCoordinates()) - .map(SearchHit::getContent); - } - @Override public Mono save(S entity) { @@ -108,9 +101,15 @@ public class SimpleReactiveElasticsearchRepository implements ReactiveEla @Override public Flux findAll() { - return elasticsearchOperations - .search(Query.findAll(), entityInformation.getJavaType(), entityInformation.getIndexCoordinates()) - .map(SearchHit::getContent); + return elasticsearchOperations.search(Query.findAll().setPageable(Pageable.unpaged()), + entityInformation.getJavaType(), entityInformation.getIndexCoordinates()).map(SearchHit::getContent); + } + + @Override + public Flux findAll(Sort sort) { + + return elasticsearchOperations.search(Query.findAll().addSort(sort).setPageable(Pageable.unpaged()), + entityInformation.getJavaType(), entityInformation.getIndexCoordinates()).map(SearchHit::getContent); } @Override diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepositoryTests.java index 6cb28095e..f35c20444 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepositoryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleReactiveElasticsearchRepositoryTests.java @@ -17,6 +17,7 @@ package org.springframework.data.elasticsearch.repository.support; import static org.assertj.core.api.Assertions.*; import static org.springframework.data.elasticsearch.annotations.FieldType.*; +import static org.springframework.data.elasticsearch.core.query.Query.*; import lombok.AllArgsConstructor; import lombok.Builder; @@ -33,6 +34,7 @@ import java.util.Arrays; import java.util.LinkedHashMap; import java.util.Map; import java.util.UUID; +import java.util.stream.IntStream; import org.elasticsearch.action.bulk.BulkRequest; import org.elasticsearch.action.index.IndexRequest; @@ -154,6 +156,20 @@ public class SimpleReactiveElasticsearchRepositoryTests { .verifyComplete(); } + @Test // DATAES-720 + public void findAllShouldReturnAllElements() { + // make sure to be above the default page size of the Query interface + int count = DEFAULT_PAGE_SIZE * 2; + bulkIndex(IntStream.range(1, count + 1) // + .mapToObj(it -> SampleEntity.builder().id(String.valueOf(it)).build()) // + .toArray(SampleEntity[]::new)); + + repository.findAll() // + .as(StepVerifier::create) // + .expectNextCount(count) // + .verifyComplete(); + } + @Test // DATAES-519 public void findAllByIdByIdShouldCompleteIfIndexDoesNotExist() { repository.findAllById(Arrays.asList("id-two", "id-two")).as(StepVerifier::create).verifyComplete();