mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-07-27 12:43:30 +00:00
bug fix for version field
This commit is contained in:
parent
c3f7309b9f
commit
2adecd33ad
@ -39,6 +39,7 @@ import static org.apache.commons.lang.StringUtils.isBlank;
|
|||||||
import static org.elasticsearch.action.search.SearchType.DFS_QUERY_THEN_FETCH;
|
import static org.elasticsearch.action.search.SearchType.DFS_QUERY_THEN_FETCH;
|
||||||
import static org.elasticsearch.client.Requests.indicesExistsRequest;
|
import static org.elasticsearch.client.Requests.indicesExistsRequest;
|
||||||
import static org.elasticsearch.client.Requests.refreshRequest;
|
import static org.elasticsearch.client.Requests.refreshRequest;
|
||||||
|
import static org.elasticsearch.index.VersionType.EXTERNAL;
|
||||||
|
|
||||||
|
|
||||||
public class ElasticsearchTemplate implements ElasticsearchOperations {
|
public class ElasticsearchTemplate implements ElasticsearchOperations {
|
||||||
@ -220,6 +221,7 @@ public class ElasticsearchTemplate implements ElasticsearchOperations {
|
|||||||
.setSource(objectMapper.writeValueAsString(query.getObject()));
|
.setSource(objectMapper.writeValueAsString(query.getObject()));
|
||||||
if(query.getVersion() != null){
|
if(query.getVersion() != null){
|
||||||
indexRequestBuilder.setVersion(query.getVersion());
|
indexRequestBuilder.setVersion(query.getVersion());
|
||||||
|
indexRequestBuilder.setVersionType(EXTERNAL);
|
||||||
}
|
}
|
||||||
return indexRequestBuilder;
|
return indexRequestBuilder;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
@ -62,10 +62,10 @@ public class SimpleElasticsearchRepository<T> implements ElasticsearchRepository
|
|||||||
Assert.notNull(metadata);
|
Assert.notNull(metadata);
|
||||||
this.entityInformation = metadata;
|
this.entityInformation = metadata;
|
||||||
setEntityClass(this.entityInformation.getJavaType());
|
setEntityClass(this.entityInformation.getJavaType());
|
||||||
|
createIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostConstruct
|
private void createIndex(){
|
||||||
public void createIndex(){
|
|
||||||
elasticsearchOperations.createIndex(getEntityClass());
|
elasticsearchOperations.createIndex(getEntityClass());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,23 +2,18 @@ package org.springframework.data.elasticsearch;
|
|||||||
|
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.springframework.beans.factory.BeanCreationException;
|
||||||
|
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||||
import org.springframework.data.elasticsearch.repositories.NonDocumentEntityRepository;
|
import org.springframework.data.elasticsearch.repositories.NonDocumentEntityRepository;
|
||||||
import org.springframework.test.context.ContextConfiguration;
|
|
||||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
|
|
||||||
@RunWith(SpringJUnit4ClassRunner.class)
|
|
||||||
@ContextConfiguration("classpath:/repository-non-document-entity.xml")
|
|
||||||
public class NonDocumentEntityTest {
|
public class NonDocumentEntityTest {
|
||||||
|
|
||||||
@Resource
|
|
||||||
private NonDocumentEntityRepository nonDocumentEntityRepository;
|
|
||||||
|
|
||||||
@Test(expected = IllegalArgumentException.class)
|
@Test(expected = BeanCreationException.class)
|
||||||
public void shouldNotIndexEntitiesWhichAreNotADocument(){
|
public void shouldNotInitialiseRepositoryWithNonDocument(){
|
||||||
//when
|
//when
|
||||||
nonDocumentEntityRepository.save(new NonDocumentEntity());
|
ClassPathXmlApplicationContext ctx =
|
||||||
|
new ClassPathXmlApplicationContext("/repository-non-document-entity.xml");
|
||||||
|
ctx.getBean(NonDocumentEntityRepository.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package org.springframework.data.elasticsearch.repositories;
|
package org.springframework.data.elasticsearch.repositories;
|
||||||
|
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@ -27,23 +28,36 @@ public class RepositoryTest {
|
|||||||
@Resource
|
@Resource
|
||||||
private SampleElasticsearchRepository repository;
|
private SampleElasticsearchRepository repository;
|
||||||
|
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void before(){
|
||||||
|
repository.deleteAll();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldDoBulkIndexDocument(){
|
public void shouldDoBulkIndexDocument(){
|
||||||
//given
|
//given
|
||||||
String documentId = randomNumeric(5);
|
String documentId1 = randomNumeric(5);
|
||||||
SampleEntity sampleEntity1 = new SampleEntity();
|
SampleEntity sampleEntity1 = new SampleEntity();
|
||||||
sampleEntity1.setId(documentId);
|
sampleEntity1.setId(documentId1);
|
||||||
sampleEntity1.setMessage("some message");
|
sampleEntity1.setMessage("some message");
|
||||||
|
sampleEntity1.setVersion(System.currentTimeMillis());
|
||||||
|
|
||||||
|
String documentId2 = randomNumeric(5);
|
||||||
SampleEntity sampleEntity2 = new SampleEntity();
|
SampleEntity sampleEntity2 = new SampleEntity();
|
||||||
sampleEntity2.setId(documentId);
|
sampleEntity2.setId(documentId2);
|
||||||
sampleEntity2.setMessage("some message");
|
sampleEntity2.setMessage("some message");
|
||||||
|
sampleEntity2.setVersion(System.currentTimeMillis());
|
||||||
|
|
||||||
//when
|
//when
|
||||||
repository.save(Arrays.asList(sampleEntity1, sampleEntity2));
|
repository.save(Arrays.asList(sampleEntity1, sampleEntity2));
|
||||||
//then
|
//then
|
||||||
SampleEntity entityFromElasticSearch = repository.findOne(documentId);
|
SampleEntity entity1FromElasticSearch = repository.findOne(documentId1);
|
||||||
assertThat(entityFromElasticSearch, is(notNullValue()));
|
assertThat(entity1FromElasticSearch, is(notNullValue()));
|
||||||
|
|
||||||
|
SampleEntity entity2FromElasticSearch = repository.findOne(documentId2);
|
||||||
|
assertThat(entity2FromElasticSearch, is(notNullValue()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -53,6 +67,7 @@ public class RepositoryTest {
|
|||||||
SampleEntity sampleEntity = new SampleEntity();
|
SampleEntity sampleEntity = new SampleEntity();
|
||||||
sampleEntity.setId(documentId);
|
sampleEntity.setId(documentId);
|
||||||
sampleEntity.setMessage("some message");
|
sampleEntity.setMessage("some message");
|
||||||
|
sampleEntity.setVersion(System.currentTimeMillis());
|
||||||
//when
|
//when
|
||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
//then
|
//then
|
||||||
@ -67,6 +82,7 @@ public class RepositoryTest {
|
|||||||
SampleEntity sampleEntity = new SampleEntity();
|
SampleEntity sampleEntity = new SampleEntity();
|
||||||
sampleEntity.setId(documentId);
|
sampleEntity.setId(documentId);
|
||||||
sampleEntity.setMessage("some message");
|
sampleEntity.setMessage("some message");
|
||||||
|
sampleEntity.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
//when
|
//when
|
||||||
SampleEntity entityFromElasticSearch = repository.findOne(documentId);
|
SampleEntity entityFromElasticSearch = repository.findOne(documentId);
|
||||||
@ -82,6 +98,7 @@ public class RepositoryTest {
|
|||||||
SampleEntity sampleEntity = new SampleEntity();
|
SampleEntity sampleEntity = new SampleEntity();
|
||||||
sampleEntity.setId(documentId);
|
sampleEntity.setId(documentId);
|
||||||
sampleEntity.setMessage("some message");
|
sampleEntity.setMessage("some message");
|
||||||
|
sampleEntity.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
//when
|
//when
|
||||||
Long count = repository.count();
|
Long count = repository.count();
|
||||||
@ -104,6 +121,7 @@ public class RepositoryTest {
|
|||||||
SampleEntity sampleEntity = new SampleEntity();
|
SampleEntity sampleEntity = new SampleEntity();
|
||||||
sampleEntity.setId(documentId);
|
sampleEntity.setId(documentId);
|
||||||
sampleEntity.setMessage("some message");
|
sampleEntity.setMessage("some message");
|
||||||
|
sampleEntity.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
//when
|
//when
|
||||||
repository.delete(documentId);
|
repository.delete(documentId);
|
||||||
@ -119,6 +137,7 @@ public class RepositoryTest {
|
|||||||
SampleEntity sampleEntity = new SampleEntity();
|
SampleEntity sampleEntity = new SampleEntity();
|
||||||
sampleEntity.setId(documentId);
|
sampleEntity.setId(documentId);
|
||||||
sampleEntity.setMessage("some test message");
|
sampleEntity.setMessage("some test message");
|
||||||
|
sampleEntity.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
|
|
||||||
SearchQuery query = new SearchQuery();
|
SearchQuery query = new SearchQuery();
|
||||||
@ -137,6 +156,7 @@ public class RepositoryTest {
|
|||||||
SampleEntity sampleEntity = new SampleEntity();
|
SampleEntity sampleEntity = new SampleEntity();
|
||||||
sampleEntity.setId(documentId);
|
sampleEntity.setId(documentId);
|
||||||
sampleEntity.setMessage("hello world.");
|
sampleEntity.setMessage("hello world.");
|
||||||
|
sampleEntity.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
//when
|
//when
|
||||||
Page<SampleEntity> page = repository.search(termQuery("message", "world"), new PageRequest(0,50));
|
Page<SampleEntity> page = repository.search(termQuery("message", "world"), new PageRequest(0,50));
|
||||||
@ -154,12 +174,14 @@ public class RepositoryTest {
|
|||||||
SampleEntity sampleEntity = new SampleEntity();
|
SampleEntity sampleEntity = new SampleEntity();
|
||||||
sampleEntity.setId(documentId);
|
sampleEntity.setId(documentId);
|
||||||
sampleEntity.setMessage("hello world.");
|
sampleEntity.setMessage("hello world.");
|
||||||
|
sampleEntity.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
|
|
||||||
String documentId2 = randomNumeric(5);
|
String documentId2 = randomNumeric(5);
|
||||||
SampleEntity sampleEntity2 = new SampleEntity();
|
SampleEntity sampleEntity2 = new SampleEntity();
|
||||||
sampleEntity2.setId(documentId2);
|
sampleEntity2.setId(documentId2);
|
||||||
sampleEntity2.setMessage("hello world.");
|
sampleEntity2.setMessage("hello world.");
|
||||||
|
sampleEntity2.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntity2);
|
repository.save(sampleEntity2);
|
||||||
|
|
||||||
//when
|
//when
|
||||||
@ -196,6 +218,7 @@ public class RepositoryTest {
|
|||||||
SampleEntity sampleEntity = new SampleEntity();
|
SampleEntity sampleEntity = new SampleEntity();
|
||||||
sampleEntity.setId(documentId);
|
sampleEntity.setId(documentId);
|
||||||
sampleEntity.setMessage("hello world.");
|
sampleEntity.setMessage("hello world.");
|
||||||
|
sampleEntity.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
|
|
||||||
//when
|
//when
|
||||||
@ -212,6 +235,7 @@ public class RepositoryTest {
|
|||||||
SampleEntity sampleEntity = new SampleEntity();
|
SampleEntity sampleEntity = new SampleEntity();
|
||||||
sampleEntity.setId(documentId);
|
sampleEntity.setId(documentId);
|
||||||
sampleEntity.setMessage("hello world.");
|
sampleEntity.setMessage("hello world.");
|
||||||
|
sampleEntity.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
//when
|
//when
|
||||||
SearchQuery searchQuery = new SearchQuery();
|
SearchQuery searchQuery = new SearchQuery();
|
||||||
@ -239,6 +263,7 @@ public class RepositoryTest {
|
|||||||
SampleEntity sampleEntity = new SampleEntity();
|
SampleEntity sampleEntity = new SampleEntity();
|
||||||
sampleEntity.setId(documentId);
|
sampleEntity.setId(documentId);
|
||||||
sampleEntity.setMessage("hello world.");
|
sampleEntity.setMessage("hello world.");
|
||||||
|
sampleEntity.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
//when
|
//when
|
||||||
repository.delete(sampleEntity);
|
repository.delete(sampleEntity);
|
||||||
@ -252,9 +277,9 @@ public class RepositoryTest {
|
|||||||
@Test
|
@Test
|
||||||
public void shouldReturnIterableEntities(){
|
public void shouldReturnIterableEntities(){
|
||||||
//given
|
//given
|
||||||
String documentId = randomNumeric(5);
|
String documentId1 = randomNumeric(5);
|
||||||
SampleEntity sampleEntity1 = new SampleEntity();
|
SampleEntity sampleEntity1 = new SampleEntity();
|
||||||
sampleEntity1.setId(documentId);
|
sampleEntity1.setId(documentId1);
|
||||||
sampleEntity1.setMessage("hello world.");
|
sampleEntity1.setMessage("hello world.");
|
||||||
sampleEntity1.setVersion(System.currentTimeMillis());
|
sampleEntity1.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntity1);
|
repository.save(sampleEntity1);
|
||||||
@ -267,7 +292,7 @@ public class RepositoryTest {
|
|||||||
repository.save(sampleEntity2);
|
repository.save(sampleEntity2);
|
||||||
|
|
||||||
//when
|
//when
|
||||||
Iterable<SampleEntity> sampleEntities=repository.search(fieldQuery("id",documentId));
|
Iterable<SampleEntity> sampleEntities = repository.search(fieldQuery("id",documentId1));
|
||||||
//then
|
//then
|
||||||
assertNotNull("sample entities cant be null..", sampleEntities);
|
assertNotNull("sample entities cant be null..", sampleEntities);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user