DATAES-165 - Add Java 8 Steram support in custom repositories.
This commit is contained in:
committed by
Artur Konczak
parent
576495932e
commit
416daef2f9
@@ -42,6 +42,7 @@ import org.springframework.data.elasticsearch.entities.HetroEntity1;
|
||||
import org.springframework.data.elasticsearch.entities.HetroEntity2;
|
||||
import org.springframework.data.elasticsearch.entities.SampleEntity;
|
||||
import org.springframework.data.elasticsearch.entities.SampleMappingEntity;
|
||||
import org.springframework.data.util.CloseableIterator;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
@@ -896,6 +897,31 @@ public class ElasticsearchTemplateTests {
|
||||
assertThat(sampleEntities.size(), is(equalTo(30)));
|
||||
}
|
||||
|
||||
/*
|
||||
DATAES-167
|
||||
*/
|
||||
@Test
|
||||
public void shouldReturnResultsWithStreamForGivenCriteriaQuery() {
|
||||
//given
|
||||
List<IndexQuery> entities = createSampleEntitiesWithMessage("Test message", 30);
|
||||
// when
|
||||
elasticsearchTemplate.bulkIndex(entities);
|
||||
elasticsearchTemplate.refresh(SampleEntity.class, true);
|
||||
// then
|
||||
|
||||
CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria());
|
||||
criteriaQuery.addIndices(INDEX_NAME);
|
||||
criteriaQuery.addTypes(TYPE_NAME);
|
||||
criteriaQuery.setPageable(new PageRequest(0, 10));
|
||||
|
||||
CloseableIterator<SampleEntity> stream = elasticsearchTemplate.stream(criteriaQuery, SampleEntity.class);
|
||||
List<SampleEntity> sampleEntities = new ArrayList<SampleEntity>();
|
||||
while (stream.hasNext()) {
|
||||
sampleEntities.add(stream.next());
|
||||
}
|
||||
assertThat(sampleEntities.size(), is(equalTo(30)));
|
||||
}
|
||||
|
||||
private static List<IndexQuery> createSampleEntitiesWithMessage(String message, int numberOfEntities) {
|
||||
List<IndexQuery> indexQueries = new ArrayList<IndexQuery>();
|
||||
for (int i = 0; i < numberOfEntities; i++) {
|
||||
|
||||
@@ -19,8 +19,10 @@ import static org.apache.commons.lang.RandomStringUtils.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -641,6 +643,22 @@ public class CustomMethodRepositoryTests {
|
||||
assertThat(page.getTotalElements(), is(equalTo(1L)));
|
||||
}
|
||||
|
||||
/*
|
||||
DATAES-165
|
||||
*/
|
||||
@Test
|
||||
public void shouldAllowReturningJava8StreamInCustomQuery() {
|
||||
// given
|
||||
List<SampleEntity> entities = createSampleEntities("abc", 30);
|
||||
repository.save(entities);
|
||||
|
||||
// when
|
||||
Stream<SampleEntity> stream = repository.findByType("abc");
|
||||
// then
|
||||
assertThat(stream, is(notNullValue()));
|
||||
assertThat(stream.count(), is(equalTo(30L)));
|
||||
}
|
||||
|
||||
/*
|
||||
DATAES-106
|
||||
*/
|
||||
@@ -1174,5 +1192,18 @@ public class CustomMethodRepositoryTests {
|
||||
// then
|
||||
assertThat(count, is(equalTo(1L)));
|
||||
}
|
||||
|
||||
private List<SampleEntity> createSampleEntities(String type, int numberOfEntities) {
|
||||
List<SampleEntity> entities = new ArrayList<SampleEntity>();
|
||||
for (int i = 0; i < numberOfEntities; i++) {
|
||||
SampleEntity entity = new SampleEntity();
|
||||
entity.setId(randomNumeric(numberOfEntities));
|
||||
entity.setAvailable(true);
|
||||
entity.setMessage("Message");
|
||||
entity.setType(type);
|
||||
entities.add(entity);
|
||||
}
|
||||
return entities;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.data.elasticsearch.repositories.custom;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
@@ -87,6 +88,8 @@ public interface SampleCustomMethodRepository extends ElasticsearchRepository<Sa
|
||||
|
||||
Page<SampleEntity> findByLocationNear(GeoPoint point, String distance, Pageable pageable);
|
||||
|
||||
Stream<SampleEntity> findByType(String type);
|
||||
|
||||
long countByType(String type);
|
||||
|
||||
long countByTypeNot(String type);
|
||||
|
||||
Reference in New Issue
Block a user