Skip to content

Commit 187ced3

Browse files
committed
Verify custom finders can handle PageRequest as method parameter.
Spring Data Commons patched handling subclasses of special parameter types through spring-projects/spring-data-commons#2626. This commit adds test cases ensuring things work properly with Spring Data JPA. See #2013.
1 parent 0896c23 commit 187ced3

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import lombok.Data;
2828

2929
import java.util.ArrayList;
30+
import java.util.Arrays;
3031
import java.util.Collection;
3132
import java.util.Collections;
3233
import java.util.HashSet;
@@ -1689,6 +1690,32 @@ void findByEmptyCollectionOfIntegers() {
16891690
assertThat(users).hasSize(0);
16901691
}
16911692

1693+
@Test // GH-2013
1694+
void findByCollectionWithPageable() {
1695+
1696+
flushTestUsers();
1697+
1698+
Page<User> userPage = repository.findByAgeIn(Arrays.asList(28, 35), (Pageable) PageRequest.of(0, 2));
1699+
1700+
assertThat(userPage).hasSize(2);
1701+
assertThat(userPage.getTotalElements()).isEqualTo(2);
1702+
assertThat(userPage.getTotalPages()).isEqualTo(1);
1703+
assertThat(userPage.getContent()).containsExactlyInAnyOrder(firstUser, secondUser);
1704+
}
1705+
1706+
@Test // GH-2013
1707+
void findByCollectionWithPageRequest() {
1708+
1709+
flushTestUsers();
1710+
1711+
Page<User> userPage = repository.findByAgeIn(Arrays.asList(28, 35), (PageRequest) PageRequest.of(0, 2));
1712+
1713+
assertThat(userPage).hasSize(2);
1714+
assertThat(userPage.getTotalElements()).isEqualTo(2);
1715+
assertThat(userPage.getTotalPages()).isEqualTo(1);
1716+
assertThat(userPage.getContent()).containsExactlyInAnyOrder(firstUser, secondUser);
1717+
}
1718+
16921719
@Test // DATAJPA-606
16931720
void findByEmptyArrayOfIntegers() {
16941721

src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import javax.persistence.QueryHint;
2828

2929
import org.springframework.data.domain.Page;
30+
import org.springframework.data.domain.PageRequest;
3031
import org.springframework.data.domain.Pageable;
3132
import org.springframework.data.domain.Slice;
3233
import org.springframework.data.domain.Sort;
@@ -52,6 +53,7 @@
5253
* @author Jeff Sheets
5354
* @author Andrey Kovalev
5455
* @author JyotirmoyVS
56+
* @author Greg Turnquist
5557
*/
5658
public interface UserRepository
5759
extends JpaRepository<User, Integer>, JpaSpecificationExecutor<User>, UserRepositoryCustom {
@@ -504,6 +506,12 @@ List<User> findUsersByFirstnameForSpELExpressionWithParameterIndexOnlyWithEntity
504506
// DATAJPA-606
505507
List<User> findByAgeIn(Collection<Integer> ages);
506508

509+
// GH-2013
510+
Page<User> findByAgeIn(Collection<Integer> ages, Pageable pageable);
511+
512+
// GH-2013
513+
Page<User> findByAgeIn(Collection<Integer> ages, PageRequest pageable);
514+
507515
// DATAJPA-606
508516
List<User> queryByAgeIn(Integer[] ages);
509517

0 commit comments

Comments
 (0)