Browse Source

Apply sort of unpaged `Pageable` to query.

Original pull request: #4773
Closes #4771
pull/4791/head
Christoph Strobl 1 year ago committed by Mark Paluch
parent
commit
4df06c7699
No known key found for this signature in database
GPG Key ID: 55BC6374BAA9D973
  1. 3
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Query.java
  2. 10
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java

3
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Query.java

@ -286,6 +286,9 @@ public class Query implements ReadConcernAware, ReadPreferenceAware {
public Query with(Pageable pageable) { public Query with(Pageable pageable) {
if (pageable.isUnpaged()) { if (pageable.isUnpaged()) {
if(pageable.getSort().isSorted()) {
return with(pageable.getSort());
}
return this; return this;
} }

10
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java

@ -23,6 +23,7 @@ import org.bson.Document;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.aop.framework.ProxyFactory; import org.springframework.aop.framework.ProxyFactory;
import org.springframework.data.domain.Limit; import org.springframework.data.domain.Limit;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction; import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.domain.Sort.Order; import org.springframework.data.domain.Sort.Order;
@ -366,6 +367,15 @@ class QueryTests {
compareQueries(target, source); compareQueries(target, source);
} }
@Test // GH-4771
void appliesSortOfUnpagedPageable() {
Query query = new Query();
query.with(Pageable.unpaged(Sort.by("sortMe")));
assertThat(query.isSorted()).isTrue();
}
private void compareQueries(Query actual, Query expected) { private void compareQueries(Query actual, Query expected) {
assertThat(actual.getCollation()).isEqualTo(expected.getCollation()); assertThat(actual.getCollation()).isEqualTo(expected.getCollation());

Loading…
Cancel
Save