스프링 공식문서에서 Spring Data JPA의 문서를 보면, 페이징 처리에 대한 설명이 자세히 나와있다.
JPA Repository의 상속 구조를 보면, JpaRepository가 페이징과 crud기능을 가진 repository를 모두 상속받아 모든 기능을 사용할수 있다.
즉, JpaRepository를 상속받은 리포지토리를 통해 PagingAndSortingRepository 리포지토리의 Page 객체를 사용하여
간편하게 페이징 처리를 할수있는것이다.
Page객체를 통한 페이징 처리
게시물 리스트를 출력하는 list 컨트롤러에서, 파라미터로 Pageable 객체를 받아준뒤,
boardRepository의 findAll 메소드의 파라미터로 pageable를 추가해주면, Page<Board> 객체 타입의 boards를 리턴받는다.
해당 Page<Board> boards는 기본적인 size와 page를 가지고있어, 원하는대로 편하게 페이징 처리를 할 수 있다.
Page객체를 통해 getTotalPage, getTotalElement등 페이징 관련 메소드를 사용할수있다.
@PageableDefault () : 페이징 처리할 게시물의 갯수를 설정한다. 기본 Default는 20이다.
클라이언트단 페이지 버튼 처리
부트스트랩의 pagination 모듈을 사용해서 페이징 버튼을 구현해서 서버에서 보내준 boards의 pageable 객체의 페이징 관련 변수를 활용해서 버튼을 생성해주면 된다.
'Category > Spring' 카테고리의 다른 글
스프링 스케줄러를 사용하여 커넥션풀의 현재 커넥션 개수 측정하기 (0) | 2024.10.16 |
---|---|
[SpringBoot] 스프링 시큐리티 사용하기 (1) | 2024.02.16 |
[SpringBoot] @Valid, Validator를 통한 유효성 검사 (1) | 2024.02.15 |
[스프링부트] Thymeleaf - classappend와 fragment (0) | 2024.02.14 |
[SpringBoot] 스프링부트에서 Mybatis 사용하기 (0) | 2024.02.13 |