DATAES-42 : Adding support for letting Elasticsearch generate Id for document
This commit is contained in:
@@ -1034,4 +1034,62 @@ public class ElasticsearchTemplateTests {
|
||||
assertThat(page.getTotalElements(),is(1L));
|
||||
assertThat(page.getContent().get(0).getMessage(), is("ab"));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void shouldDoIndexWithoutId() {
|
||||
// given
|
||||
// document
|
||||
SampleEntity sampleEntity = new SampleEntity();
|
||||
sampleEntity.setMessage("some message");
|
||||
sampleEntity.setVersion(System.currentTimeMillis());
|
||||
|
||||
IndexQuery indexQuery = new IndexQuery();
|
||||
indexQuery.setObject(sampleEntity);
|
||||
// when
|
||||
String documentId = elasticsearchTemplate.index(indexQuery);
|
||||
// then
|
||||
assertThat(sampleEntity.getId(), is(equalTo(documentId)));
|
||||
|
||||
GetQuery getQuery = new GetQuery();
|
||||
getQuery.setId(documentId);
|
||||
SampleEntity result = elasticsearchTemplate.queryForObject(getQuery, SampleEntity.class);
|
||||
assertThat(result.getId(), is(equalTo(documentId)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldDoBulkIndexWithoutId() {
|
||||
// given
|
||||
List<IndexQuery> indexQueries = new ArrayList<IndexQuery>();
|
||||
// first document
|
||||
String documentId = randomNumeric(5);
|
||||
SampleEntity sampleEntity1 = new SampleEntity();
|
||||
sampleEntity1.setMessage("some message");
|
||||
sampleEntity1.setVersion(System.currentTimeMillis());
|
||||
|
||||
IndexQuery indexQuery1 = new IndexQuery();
|
||||
//indexQuery1.setId(documentId);
|
||||
indexQuery1.setObject(sampleEntity1);
|
||||
indexQueries.add(indexQuery1);
|
||||
|
||||
// second document
|
||||
SampleEntity sampleEntity2 = new SampleEntity();
|
||||
sampleEntity2.setMessage("some message");
|
||||
sampleEntity2.setVersion(System.currentTimeMillis());
|
||||
|
||||
IndexQuery indexQuery2 = new IndexQuery();
|
||||
indexQuery2.setObject(sampleEntity2);
|
||||
indexQueries.add(indexQuery2);
|
||||
// when
|
||||
elasticsearchTemplate.bulkIndex(indexQueries);
|
||||
elasticsearchTemplate.refresh(SampleEntity.class, true);
|
||||
// then
|
||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||
assertThat(sampleEntities.getTotalElements(), is(equalTo(2L)));
|
||||
|
||||
assertThat(sampleEntities.getContent().get(0).getId(), is(notNullValue()));
|
||||
assertThat(sampleEntities.getContent().get(1).getId(), is(notNullValue()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.elasticsearch.DoubleIDEntity;
|
||||
import org.springframework.data.elasticsearch.IntegerIDEntity;
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||
import org.springframework.data.elasticsearch.repositories.IntegerIDRepository;
|
||||
|
||||
@@ -104,6 +104,18 @@ public class SimpleElasticsearchRepositoryTests {
|
||||
assertThat(entityFromElasticSearch, is(notNullValue()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldSaveDocumentWithoutId() {
|
||||
// given
|
||||
SampleEntity sampleEntity = new SampleEntity();
|
||||
sampleEntity.setMessage("some message");
|
||||
sampleEntity.setVersion(System.currentTimeMillis());
|
||||
// when
|
||||
repository.save(sampleEntity);
|
||||
// then
|
||||
assertThat(sampleEntity.getId(), is(notNullValue()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldFindDocumentById() {
|
||||
// given
|
||||
|
||||
Reference in New Issue
Block a user