
페이징이란 데이터베이스의 레코드를 개수로 나눠 페이지를 구분하는 것
JPA에서는 이 같은 페이징 처리를 위해 Page와 Pageable을 사용합니다.
Page findByName(String name, Pageable pageable);
리턴 타입으로 Page를 설정하고 매개변수에는 Pageable 타입의 객체를 정의합니다.
Page productPage = productRepository.findByName(”펜”, PageRequest.of(0, 2));
pageable 파라미터를 전달하기 위해 PageRequest 클래스를 사용합니다.
PageRequest는 of 메서드를 통해 PageRequest 객체를 생성합니다.
of 메서드는 매개변수에 따라 다양한 형태로 오버로딩돼 있는데 다음과 같은 조합입니다.
| of 메서드 | 매개변수 설명 | 비고 |
|---|---|---|
| of(int page, int size) | 페이지 번호(0부터 시작), 페이지당 데이터 개수 | 데이터를 정렬하지 않음 |
| of(int page, int size, Sort) | 페이지 번호, 페이지당 데이터 개수, 정렬 | sort에 의해 정렬 |
| of(int page, int size, Direction, String… properties) | 페이지 번호, 페이지당 데이터 개수, 정렬 방향, 속성(칼럼) | Sort.by(direction, properties)에 의해 정렬 |
Page productPage = productRepository.findByName(”펜”, PageRequest.of(0, 2));
System.out.println(productPage.getContent());
getContent() 메서드를 사용해 출력하면 배열 형태로 값이 출력됩니다.
[참조]