JPA를 사용하면서 손쉽게 Pagenation 기능을 적용할 수 있도록 해주는 클래스이다.
JPA를 이용해 저장된 데이터를 불러올 때, 불러오는 데이터를 일정 개수로 나누어
public List<?> pager(int page, int size){
PageRequest pager = PageRequest.of(page, size, Sort.by("id"));
return repository.findAll(pager);
}
public getPostPages postPage(int page, int size){
Page<Post> page = repository.pager(0, 10);
System.out.println(page.getContent());
}
page는 DB에 저장된 데이터를 size 크기만큼으로 나누었을 때의 page를 의미하며, size는 말 그대로 각 페이지에 몇개의 Entity를 담아 리턴할 것 인지를 의미한다.
RequestPage 클래스는 추상 클래스인 AbstractPageRequest를 상속받아 구현을 하고 있으며, Sort 클래스를 이용하면 정렬된 상태로 데이터를 가져올 수 있다.
PageRequest 클래스는 생성자가 없고, of
메서드를 통해 PageRequest객체에 접근하도록 되어있다. 그러므로, 따로 인스턴스를 생성할 수 없음에 주의하고 사용해야 한다.