Skip to content

Commit a2262a7

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 spring-projects#2013.
1 parent 307e8fc commit a2262a7

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;
@@ -1679,6 +1680,32 @@ void findByEmptyCollectionOfIntegers() throws Exception {
16791680
assertThat(users).hasSize(0);
16801681
}
16811682

1683+
@Test // GH-2013
1684+
void findByCollectionWithPageable() {
1685+
1686+
flushTestUsers();
1687+
1688+
Page<User> userPage = repository.findByAgeIn(Arrays.asList(28, 35), (Pageable) PageRequest.of(0, 2));
1689+
1690+
assertThat(userPage).hasSize(2);
1691+
assertThat(userPage.getTotalElements()).isEqualTo(2);
1692+
assertThat(userPage.getTotalPages()).isEqualTo(1);
1693+
assertThat(userPage.getContent()).containsExactlyInAnyOrder(firstUser, secondUser);
1694+
}
1695+
1696+
@Test // GH-2013
1697+
void findByCollectionWithPageRequest() {
1698+
1699+
flushTestUsers();
1700+
1701+
Page<User> userPage = repository.findByAgeIn(Arrays.asList(28, 35), (PageRequest) PageRequest.of(0, 2));
1702+
1703+
assertThat(userPage).hasSize(2);
1704+
assertThat(userPage.getTotalElements()).isEqualTo(2);
1705+
assertThat(userPage.getTotalPages()).isEqualTo(1);
1706+
assertThat(userPage.getContent()).containsExactlyInAnyOrder(firstUser, secondUser);
1707+
}
1708+
16821709
@Test // DATAJPA-606
16831710
void findByEmptyArrayOfIntegers() throws Exception {
16841711

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)