Skip to content

Commit 9079a6f

Browse files
committed
Correctly apply Sorting of unpaged Pageable.
Closes #1939
1 parent 13afaf7 commit 9079a6f

File tree

2 files changed

+21
-6
lines changed
  • spring-data-relational/src

2 files changed

+21
-6
lines changed

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -171,12 +171,12 @@ public Query limit(int limit) {
171171
*/
172172
public Query with(Pageable pageable) {
173173

174+
assertNoCaseSort(pageable.getSort());
175+
174176
if (pageable.isUnpaged()) {
175-
return this;
177+
return new Query(this.criteria, this.columns, this.sort.and(pageable.getSort()), this.limit, this.offset);
176178
}
177179

178-
assertNoCaseSort(pageable.getSort());
179-
180180
return new Query(this.criteria, this.columns, this.sort.and(pageable.getSort()), pageable.getPageSize(),
181181
pageable.getOffset());
182182
}

spring-data-relational/src/test/java/org/springframework/data/relational/core/query/QueryUnitTests.java

+18-3
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,18 @@
1919

2020
import org.junit.jupiter.api.Test;
2121
import org.springframework.data.domain.PageRequest;
22+
import org.springframework.data.domain.Pageable;
2223
import org.springframework.data.domain.Sort;
2324

2425
/**
2526
* Tests the {@link Query} class.
2627
*
2728
* @author Jens Schauder
29+
* @author Mark Paluch
2830
*/
2931
public class QueryUnitTests {
3032

31-
@Test // DATAJDBC614
33+
@Test // DATAJDBC-614
3234
public void withCombinesSortAndPaging() {
3335

3436
Query query = Query.empty() //
@@ -40,7 +42,7 @@ public void withCombinesSortAndPaging() {
4042
.containsExactly("alpha", "beta");
4143
}
4244

43-
@Test // DATAJDBC614
45+
@Test // DATAJDBC-614
4446
public void withCombinesEmptySortAndPaging() {
4547

4648
Query query = Query.empty() //
@@ -51,7 +53,7 @@ public void withCombinesEmptySortAndPaging() {
5153
.containsExactly("beta");
5254
}
5355

54-
@Test // DATAJDBC614
56+
@Test // DATAJDBC-614
5557
public void withCombinesSortAndUnsortedPaging() {
5658

5759
Query query = Query.empty() //
@@ -62,4 +64,17 @@ public void withCombinesSortAndUnsortedPaging() {
6264
.extracting(Sort.Order::getProperty) //
6365
.containsExactly("alpha");
6466
}
67+
68+
@Test // GH-1939
69+
public void withCombinesUnpagedWithSort() {
70+
71+
Query query = Query.empty() //
72+
.with(Pageable.unpaged(Sort.by("beta")));
73+
74+
assertThat(query.getSort().get()) //
75+
.extracting(Sort.Order::getProperty) //
76+
.containsExactly("beta");
77+
assertThat(query.getLimit()).isEqualTo(-1);
78+
assertThat(query.getOffset()).isEqualTo(-1);
79+
}
6580
}

0 commit comments

Comments
 (0)