Skip to content

Commit cf3c4f7

Browse files
committed
DATAES-115 Add count before projection query to retrieve all results.
1 parent d921372 commit cf3c4f7

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/main/java/org/springframework/data/elasticsearch/repository/query/ElasticsearchPartQuery.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package org.springframework.data.elasticsearch.repository.query;
1717

18+
import org.springframework.data.domain.PageRequest;
1819
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
1920
import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty;
2021
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
@@ -49,9 +50,12 @@ public Object execute(Object[] parameters) {
4950
query.setPageable(accessor.getPageable());
5051
return elasticsearchOperations.queryForPage(query, queryMethod.getEntityInformation().getJavaType());
5152
} else if (queryMethod.isCollectionQuery()) {
52-
if (accessor.getPageable() != null) {
53-
query.setPageable(accessor.getPageable());
54-
}
53+
if (accessor.getPageable() == null) {
54+
int itemCount = (int) elasticsearchOperations.count(query, queryMethod.getEntityInformation().getJavaType());
55+
query.setPageable(new PageRequest(0, Math.max(1, itemCount)));
56+
} else {
57+
query.setPageable(accessor.getPageable());
58+
}
5559
return elasticsearchOperations.queryForList(query, queryMethod.getEntityInformation().getJavaType());
5660
} else if (tree.isCountProjection()) {
5761
return elasticsearchOperations.count(query, queryMethod.getEntityInformation().getJavaType());

0 commit comments

Comments
 (0)