From 8c63f3ee22f7421c59b448af7e955b6b6d592f3e Mon Sep 17 00:00:00 2001 From: Mohsin Husen Date: Tue, 29 Apr 2014 12:01:47 +0100 Subject: [PATCH] DATAES-82 - findAll(Iterable ids) does not work with Collections terms query does not support iterable, converted Iterable to Collection --- .../support/AbstractElasticsearchRepository.java | 5 ++++- .../support/SimpleElasticsearchRepositoryTests.java | 11 +++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java b/src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java index f1e6fa63e..d32d1a14f 100644 --- a/src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java +++ b/src/main/java/org/springframework/data/elasticsearch/repository/support/AbstractElasticsearchRepository.java @@ -26,6 +26,7 @@ import java.util.Collections; import java.util.List; import org.elasticsearch.ElasticsearchException; +import org.elasticsearch.common.collect.Lists; import org.elasticsearch.index.query.QueryBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -118,7 +119,9 @@ public abstract class AbstractElasticsearchRepository findAll(Iterable ids) { - SearchQuery query = new NativeSearchQueryBuilder().withQuery(inQuery(entityInformation.getIdAttribute(), ids)) + Assert.notNull(ids, "ids can't be null."); + SearchQuery query = new NativeSearchQueryBuilder() + .withQuery(inQuery(entityInformation.getIdAttribute(), Lists.newArrayList(ids))) .build(); return elasticsearchOperations.queryForPage(query, getEntityClass()); } diff --git a/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepositoryTests.java b/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepositoryTests.java index e224e793f..1c40be1b7 100644 --- a/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepositoryTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepositoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2013 the original author or authors. + * Copyright 2013-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,8 +24,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.elasticsearch.common.collect.Lists; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -204,10 +204,11 @@ public class SimpleElasticsearchRepositoryTests { assertThat(page.getNumberOfElements(), is(greaterThanOrEqualTo(1))); } + /* + DATAES-82 + */ @Test - @Ignore public void shouldFindAllByIdQuery() { - // todo : find solution for findAll(Iterable ids) // given String documentId = randomNumeric(5); SampleEntity sampleEntity = new SampleEntity(); @@ -228,6 +229,8 @@ public class SimpleElasticsearchRepositoryTests { // then assertNotNull("sample entities cant be null..", sampleEntities); + List entities = Lists.newArrayList(sampleEntities); + assertThat(entities.size(), is(2)); } @Test