Added method support for Repository and Template to return List<T> (https://github.com/BioMedCentralLtd/spring-data-elasticsearch/issues/22)

This commit is contained in:
Mohsin Husen
2013-04-09 17:08:05 +01:00
parent 6e57235fa9
commit c471774e0a
8 changed files with 187 additions and 0 deletions

View File

@@ -119,6 +119,26 @@ public interface ElasticsearchOperations {
*/
<T> Page<T> queryForPage(StringQuery query, Class<T> clazz);
/**
* Execute the criteria query against elasticsearch and return result as {@link List}
*
* @param query
* @param clazz
* @param <T>
* @return
*/
<T> List<T> queryForList(CriteriaQuery query, Class<T> clazz);
/**
* Execute the string query against elasticsearch and return result as {@link List}
*
* @param query
* @param clazz
* @param <T>
* @return
*/
<T> List<T> queryForList(StringQuery query, Class<T> clazz);
/**
* Execute the query against elasticsearch and return ids
*

View File

@@ -152,6 +152,17 @@ public class ElasticsearchTemplate implements ElasticsearchOperations {
return resultsMapper.mapResults(response);
}
@Override
public <T> List<T> queryForList(CriteriaQuery query, Class<T> clazz){
return queryForPage(query, clazz).getContent();
}
@Override
public <T> List<T> queryForList(StringQuery query, Class<T> clazz){
return queryForPage(query, clazz).getContent();
}
@Override
public <T> List<String> queryForIds(SearchQuery query) {
SearchRequestBuilder request = prepareSearch(query).setQuery(query.getElasticsearchQuery())

View File

@@ -49,6 +49,11 @@ public class ElasticsearchPartQuery extends AbstractElasticsearchRepositoryQuery
if(queryMethod.isPageQuery()){
query.setPageable(accessor.getPageable());
return elasticsearchOperations.queryForPage(query, queryMethod.getEntityInformation().getJavaType());
} else if (queryMethod.isCollectionQuery()) {
if(accessor.getPageable() != null){
query.setPageable(accessor.getPageable());
}
return elasticsearchOperations.queryForList(query,queryMethod.getEntityInformation().getJavaType());
}
return elasticsearchOperations.queryForObject(query, queryMethod.getEntityInformation().getJavaType());
}

View File

@@ -65,7 +65,13 @@ public class ElasticsearchStringQuery extends AbstractElasticsearchRepositoryQue
if(queryMethod.isPageQuery()){
stringQuery.setPageable(accessor.getPageable());
return elasticsearchOperations.queryForPage(stringQuery, queryMethod.getEntityInformation().getJavaType());
} else if(queryMethod.isCollectionQuery()) {
if(accessor.getPageable() != null) {
stringQuery.setPageable(accessor.getPageable());
}
return elasticsearchOperations.queryForList(stringQuery,queryMethod.getEntityInformation().getJavaType());
}
return elasticsearchOperations.queryForObject(stringQuery, queryMethod.getEntityInformation().getJavaType());
}