공부/스프링프레임워크

[spring] jpa paging(page,pageable,pagerequest)

ghhong 2022. 2. 4. 15:51

repository에서 findAll()메서드로 데이터를 찾는다.

 

페이징을 위해 Pageable 인터페이스를 사용한다.(페이징을 위한 정보가 있다. 페이지 번호, 페이지 내 목록의 개수, 검색 조건 등)

Pageable : Abstract interface for pagination information.

(https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/domain/Pageable.html)

 

Pageable의 구현체인 PageRequest클래스를 사용하여 생성한다.

생성자가 protected이기 때문에 of()메서드를 이용한다.

PageRequest객체 생성을 위한 of()메서드

생성 후 Pageable인터페이스로 생성하여 출력해보면 다음과 같다.

 

이후에 repository의 findAll메서드의 파라미터로 넣어서 사용한다.

Page< T > findAll(Pageable pageable);

=> 제네릭 값들이 들어있는 Page가 생성된다. for를 사용해서 사용하면된다.

 

추가적인 조건들을 주기 위해서는(ex. 게시글 또는 제목에 '키보드'라는 단어가 들어가는 게시글들을 찾고싶다면) querydsl을 공부하면 된다.