DATAES-130 Added support for Spel Expressions in Type

- Added support for Spel Expressions in index type

- Renamed SpELEntityTest to SpELEntityTests so they run when
called from maven
This commit is contained in:
Faisal Feroz 2014-10-07 21:03:34 +05:00 committed by Artur Konczak
parent 1255dfa89d
commit 37802761ed
3 changed files with 27 additions and 15 deletions

View File

@ -95,7 +95,8 @@ public class SimpleElasticsearchPersistentEntity<T> extends BasicPersistentEntit
@Override
public String getIndexType() {
return indexType;
Expression expression = parser.parseExpression(indexType, ParserContext.TEMPLATE_EXPRESSION);
return expression.getValue(context, String.class);
}
@Override

View File

@ -34,19 +34,15 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
* SpELEntityTest
*
* @author Artur Konczak
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:/spel-repository-test.xml")
public class SpELEntityTest {
public class SpELEntityTests {
@Autowired private SpELRepository repository;
@Autowired
private SpELRepository repository;
@Autowired
private ElasticsearchTemplate template;
@Autowired private ElasticsearchTemplate template;
@Before
public void init() {
@ -66,4 +62,20 @@ public class SpELEntityTest {
long count = template.count(nativeSearchQuery);
assertThat(count, is(2L));
}
@Test
public void shouldSupportSpelInType() {
// Given
SpELEntity spELEntity = new SpELEntity();
repository.save(spELEntity);
// When
// Then
NativeSearchQuery nativeSearchQuery = new NativeSearchQuery(QueryBuilders.matchAllQuery());
nativeSearchQuery.addIndices("abz-entity");
nativeSearchQuery.addTypes("myType");
long count = template.count(nativeSearchQuery);
assertThat(count, is(1L));
}
}

View File

@ -22,13 +22,12 @@ import org.springframework.data.elasticsearch.annotations.Document;
* SpELEntity
*
* @author Artur Konczak
*
*/
@Document(indexName = "#{'abz'+'-'+'entity'}", type = "spel", indexStoreType = "memory", shards = 1, replicas = 0, refreshInterval = "-1")
@Document(indexName = "#{'abz'+'-'+'entity'}", type = "#{'my'+'Type'}", indexStoreType = "memory", shards = 1,
replicas = 0, refreshInterval = "-1")
public class SpELEntity {
@Id
private String id;
@Id private String id;
public String getId() {
return id;