diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepository.java b/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepository.java index 9df48f14..9fd0e7e2 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepository.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepository.java @@ -17,9 +17,9 @@ package org.springframework.data.elasticsearch.repository.support; import static org.elasticsearch.index.query.QueryBuilders.*; +import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; @@ -152,10 +152,23 @@ public class SimpleElasticsearchRepository implements ElasticsearchReposi @Override public Iterable findAllById(Iterable ids) { + Assert.notNull(ids, "ids can't be null."); + NativeSearchQuery query = new NativeSearchQueryBuilder().withIds(stringIdsRepresentation(ids)).build(); - return execute(operations1 -> operations1.multiGet(query, entityClass, getIndexCoordinates())).stream() - .filter(Objects::nonNull).collect(Collectors.toList()); + List result = new ArrayList<>(); + List multiGetEntities = execute(operations -> operations.multiGet(query, entityClass, getIndexCoordinates())); + + if (multiGetEntities != null) { + multiGetEntities.forEach(entity -> { + + if (entity != null) { + result.add(entity); + } + }); + } + + return result; } @Override