diff --git a/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java b/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java index 97e49489f..6a2b6b0a6 100644 --- a/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/UserRepositoryTests.java @@ -27,6 +27,7 @@ import static org.springframework.data.jpa.domain.sample.UserSpecifications.*; import lombok.Data; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashSet; @@ -1679,6 +1680,32 @@ public class UserRepositoryTests { assertThat(users).hasSize(0); } + @Test // GH-2013 + void findByCollectionWithPageable() { + + flushTestUsers(); + + Page userPage = repository.findByAgeIn(Arrays.asList(28, 35), (Pageable) PageRequest.of(0, 2)); + + assertThat(userPage).hasSize(2); + assertThat(userPage.getTotalElements()).isEqualTo(2); + assertThat(userPage.getTotalPages()).isEqualTo(1); + assertThat(userPage.getContent()).containsExactlyInAnyOrder(firstUser, secondUser); + } + + @Test // GH-2013 + void findByCollectionWithPageRequest() { + + flushTestUsers(); + + Page userPage = repository.findByAgeIn(Arrays.asList(28, 35), (PageRequest) PageRequest.of(0, 2)); + + assertThat(userPage).hasSize(2); + assertThat(userPage.getTotalElements()).isEqualTo(2); + assertThat(userPage.getTotalPages()).isEqualTo(1); + assertThat(userPage.getContent()).containsExactlyInAnyOrder(firstUser, secondUser); + } + @Test // DATAJPA-606 void findByEmptyArrayOfIntegers() throws Exception { diff --git a/src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java b/src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java index 2698bb23a..e176cca13 100644 --- a/src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java +++ b/src/test/java/org/springframework/data/jpa/repository/sample/UserRepository.java @@ -27,6 +27,7 @@ import javax.persistence.EntityManager; import javax.persistence.QueryHint; import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Slice; import org.springframework.data.domain.Sort; @@ -52,6 +53,7 @@ import org.springframework.transaction.annotation.Transactional; * @author Jeff Sheets * @author Andrey Kovalev * @author JyotirmoyVS + * @author Greg Turnquist */ public interface UserRepository extends JpaRepository, JpaSpecificationExecutor, UserRepositoryCustom { @@ -504,6 +506,12 @@ public interface UserRepository // DATAJPA-606 List findByAgeIn(Collection ages); + // GH-2013 + Page findByAgeIn(Collection ages, Pageable pageable); + + // GH-2013 + Page findByAgeIn(Collection ages, PageRequest pageable); + // DATAJPA-606 List queryByAgeIn(Integer[] ages);