Paging에서 주로 사용되는 객체 및 인터페이스는 아래와 같다.
주요 객체
Page<T> : 페이지 정보를 담게 되는 인터페이스
Pageable : 페이지 처리에 필요한 정보를 담게 되는 인터페이스
관계 및 사용
- PageRequest에 의해 Pageable에 페이징 정보가 담겨 객체화 된다.
- Pageable이 JpaRepository가 상속된 인터페이스의 메서드에 파라미터로 전달된다.
- 2번의 메서드의 return 으로 Page<T>가 전달 된다.
- 전달된 Page<T>에 담겨진 Page 정보를 바탕으로 로직을 처리하면 된다.
PageRequest의 메서드
- of(int page, int size) : 0부터 시작하는 페이지 번호와 개수. 정렬이 지정되지 않음
- of(int page, int size, Sort sort) : 페이지 번호와 개수, 정렬 관련 정보
- of(int page int size, Sort sort, Direction direction, String ... props) : 0부터 시작하는 페이지 번호와 개수, 정렬의 방향과 정렬 기준 필드들
Page<T>의 메서드
- getTotalPages() : 총 페이지 수
- getTotalElements() : 전체 개수
- getNumber() : 현재 페이지 번호
- getSize() : 페이지 당 데이터 개수
- hasnext() : 다음 페이지 존재 여부
- isFirst() : 시작페이지 여부
- getContent(), get() : 실제 컨텐츠를 가지고 오는 메서드. getContext는 List<Entity> 반환, get()은 Stream<Entity> 반환
Sort 객체 사용
Sort sort1 = Sort.by("mno").descending();
Sort sort2 = Sort.by("memoText").ascending();
Sort sortAll = sort1.and(sort2);
Pageable pageable = PageRequest.of(0, 10, sortAll);
Sort.by("필드명")으로 오름차순 또는 내림차순 정렬이 가능하고
Sort1.and(sort2)와 같이 and()를 사용해서 실제 PageRequest 사용 시 필드별로 정렬 조건을 전달할 수 있다.
'Back-End > Spring' 카테고리의 다른 글
쿼리 메서드, @Query (0) | 2021.05.12 |
---|---|
JpaRepository (0) | 2021.05.12 |
엔티티 클래스 (0) | 2021.05.12 |
Spring Context Root 경로 (Resources 경로) (0) | 2021.03.21 |
Spring AOP 용어 정리 (0) | 2021.03.21 |
댓글