From 38a11d04451b8335e183b0edb2e2e0895f7ff2a5 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 | 11 ++--------- .../data/jpa/repository/UserRepositoryTests.java | 12 ++++++++++++ 2 files changed, 14 insertions(+), 9 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 a2aaf3478e..746703220f 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 @@ -426,11 +426,6 @@ public List findAll(Sort sort) { @Override public Page findAll(Pageable pageable) { - - if (pageable.isUnpaged()) { - return new PageImpl<>(findAll()); - } - return findAll((Specification) null, pageable); } @@ -717,8 +712,7 @@ protected Page readPage(TypedQuery query, final Class dom */ protected TypedQuery 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()); } /** @@ -731,8 +725,7 @@ protected TypedQuery getQuery(@Nullable Specification spec, Pageable pagea protected 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 ed3b763650..cd52057171 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 @@ -2887,6 +2887,18 @@ void existsByExampleNegative() { 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() {