DATAES-720 - SimpleReactiveElasticsearchRepository findAll() returns only 10 elements.

Original PR: #364
This commit is contained in:
Peter-Josef Meisch 2019-12-25 10:40:10 +01:00 committed by GitHub
parent f7a14c1135
commit b634f318ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 11 deletions

View File

@ -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<T, ID> implements ReactiveEla
this.elasticsearchOperations = elasticsearchOperations;
}
@Override
public Flux<T> findAll(Sort sort) {
return elasticsearchOperations
.search(Query.findAll().addSort(sort), entityInformation.getJavaType(), entityInformation.getIndexCoordinates())
.map(SearchHit::getContent);
}
@Override
public <S extends T> Mono<S> save(S entity) {
@ -108,9 +101,15 @@ public class SimpleReactiveElasticsearchRepository<T, ID> implements ReactiveEla
@Override
public Flux<T> 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<T> findAll(Sort sort) {
return elasticsearchOperations.search(Query.findAll().addSort(sort).setPageable(Pageable.unpaged()),
entityInformation.getJavaType(), entityInformation.getIndexCoordinates()).map(SearchHit::getContent);
}
@Override

View File

@ -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();