개발자의 오르막
[# JPA] Pageable 본문
# PageRequest of
of() |
설명 |
PageRequest.of(int page, int size) |
페이지 번호(0부터 시작), 페이지당 데이터의수 |
PageRequest.of (int page, int size, Sort.Direction direction, String ...props) |
페이지 번호, 페이지당 데이터의 수, 정렬 방향, 속성(칼럼)들 |
PageRequest.of(int page, int size, Sort sort) |
페이지 번호, 페이지당 데이터의 수, 정렬방향 |
- JPA Repository
package com.springboot.study.startSpringBoot.repository;
import com.springboot.study.startSpringBoot.model.Board;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
/**
* @author Jake
* @date: 20/04/01
*/
@Transactional(readOnly = true)
@Repository
public interface BoardRepository extends JpaRepository<Board, Long> {
public Page<Board> findByBnoGreaterThan(Long bno, Pageable paging);
}
- findByBnoGreaterThan(Long bno, Pageable paging) 메소드의 Test Code
@Test
public void testBnoPagingSort() {
Pageable paging = PageRequest.of(0, 10, Sort.Direction.ASC, "bno");
Page<Board> result = boardRepository.findByBnoGreaterThan(0L, paging);
System.out.println("PAGE SIZE : " + result.getSize());
System.out.println("TOTAL PAGES : " + result.getTotalPages());
System.out.println("TOTAL COUNT : " + result.getTotalElements());
System.out.println("NEXT : " + result.nextPageable());
List<Board> list = result.getContent();
list.forEach(System.out::println);
}
- 결과값
이와 같이 각 페이지의 Size, 전체 페이지 수, 전체 게시물 개수 등의 정보를 알 수 있고,
이는 페이징 작업할 때 관리자에게 알려주는 지표로 자주 활용된다.
# Page 객체 구성
메소드 |
설명 |
int getNumber() |
현재 페이지의 정보 |
int getSize() |
한 페이지의 크기 |
int getTotalPages |
전체 페이지의 수 |
int getNumberOfElements() |
결과 데이터 수 |
boolean hasPreviousPage() |
이전 페이지의 존재 여부 |
boolean hasNextPage() |
다음 페이지의 존재 여부 |
boolean isLastPage() |
마지막 페이지 여부 |
Pageable nextPageable() |
다음 페이지 객체 |
Pageable previousPageable() |
이전 페이지 객체 |
List<T> getContent() |
조회된 데이터 |
boolean hasContent() |
결과 존재 여부 |
Sort getSort() |
검색 시 사용된 Sort 정보 |
'ORM > JPA' 카테고리의 다른 글
[QueryDsl #02] QueryDsl 의 기본개념 (0) | 2020.11.16 |
---|---|
[QueryDsl #1] 프로젝트 환경설정 (0) | 2020.10.25 |
SpringBoot + JPA QueryDSL 연동 (0) | 2019.10.08 |
Spring Security + JPA 로그인 구현 (String 아이디로 로그인 하기) (0) | 2019.09.26 |
Spring Security Login 기능 구현 (0) | 2019.09.24 |