[Spring] 페이징 및 정렬

thingzoo·2023년 7월 10일
0

Spring

목록 보기
48/54
post-thumbnail

Spring Data JPA에서 페이징 및 정렬 기능을 제공하기 때문에 손쉽게 페이징, 정렬을 구현할 수 있다.

Sort.Direction direction = isAsc ? Sort.Direction.ASC : Sort.Direction.DESC;
Sort sort = Sort.by(direction, sortBy);
Pageable pageable = PageRequest.of(page, size, sort);

Page<Product> products = productRepository.findAllByUser(user, pageable);
  • Sort: 정렬 인터페이스
  • Pageable: 손쉽게 페이징, 정렬 처리를 하기위해 제공되는 인터페이스(Sort 포함)
  • PageRequest: Pageable 인터페이스의 구현체
  • Page: count 쿼리 결과 포함
    • Client에 전달해야할 데이터인 totalPages, totalElements등의 데이터를 함께 포함
  • PageRequest.of(page, size, sort)
    • page : 현재 페이지(0부터 시작)
    • size : 데이터 노출 개수
    • sort : 정렬 방법(ASC/DESC)
    • Pageable 구현체인 PageRequest 반환
  • productRepository.findAllByUser(user, pageable)
    • Spring Data JPA의 Query Method 파라미터에 생성된 Pageable 구현 객체를 함께 전달하면 페이징 및 정렬 처리가 완료된 데이터를 Page 타입으로 반환함!

Reference

🔗 https://velog.io/@sunnamgung8/JPA-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-JPA-%ED%8E%98%EC%9D%B4%EC%A7%95%EA%B3%BC-%EC%A0%95%EB%A0%AC

나중에 필요할때 더 조사하자~~

profile
공부한 내용은 바로바로 기록하자!

0개의 댓글