From 11be12c8d06562454af70250036ce9eab72b50f4 Mon Sep 17 00:00:00 2001 From: birariro Date: Wed, 19 Jun 2024 18:35:31 +0900 Subject: [PATCH] Apply sort from unpaged Pageable to query. This commit makes sure to pass on a given Sort from an unpaged Pageable to the actual query. Closes: #3476 Original Pull Request: #3517 --- .../jpa/repository/support/SimpleJpaRepository.java | 12 ++---------- .../data/jpa/repository/UserRepositoryTests.java | 12 ++++++++++++ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java index 8c69552c7..bdb73095b 100644 --- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java +++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/support/SimpleJpaRepository.java @@ -430,11 +430,6 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation findAll(Pageable pageable) { - - if (pageable.isUnpaged()) { - return new PageImpl<>(findAll()); - } - return findAll((Specification) null, pageable); } @@ -728,9 +723,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation getQuery(@Nullable Specification spec, Pageable pageable) { - - Sort sort = pageable.isPaged() ? pageable.getSort() : Sort.unsorted(); - return getQuery(spec, getDomainClass(), sort); + return getQuery(spec, getDomainClass(), pageable.getSort()); } /** @@ -743,8 +736,7 @@ public class SimpleJpaRepository implements JpaRepositoryImplementation TypedQuery getQuery(@Nullable Specification spec, Class domainClass, Pageable pageable) { - Sort sort = pageable.isPaged() ? pageable.getSort() : Sort.unsorted(); - return getQuery(spec, domainClass, sort); + return getQuery(spec, domainClass, pageable.getSort()); } /** diff --git a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java index 98b133495..b7d8f504d 100644 --- a/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java +++ b/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java @@ -2896,6 +2896,18 @@ class UserRepositoryTests { assertThat(exists).isFalse(); } + @Test // GH-3476 + void unPagedSortedQuery() { + + flushTestUsers(); + + Sort sort = Sort.by(DESC, "firstname"); + Page firstPage = repository.findAll(PageRequest.of(0, 10, sort)); + Page secondPage = repository.findAll(Pageable.unpaged(sort)); + assertThat(firstPage.getContent()).isEqualTo(secondPage.getContent()); + } + + @Test // DATAJPA-905 void executesPagedSpecificationSettingAnOrder() {