Spring Data JPA 페이징과 정렬

DragonTiger·2022년 4월 12일
0
post-custom-banner

Spring Data JPA에서는 쿼리 메소드에 페이징과 정렬 기능을 제공하는 2가지 클래스를 제공합니다.




org.springframework.data.domain.Sort : 정렬 기능
org.springframework.data.domain.Pageable : 페이징 기능


Sample Code
// Page 정의
public interface MemberRepository extends Repository<Member, Long> {
    Page<Member> findByUsername(String name, Pageable Pageable);
}

// Page 사용 코드
PageRequet pageRequest = new PageRequest(0, 10, new Sort(Direction.DESC, " username")); 
//현재페이지, 조회할 페이지수, 정렬정보

Page<Member> result = memberRepository.findByUsername("홍길동", pageRequest);

List<Member> members = result.getContent(); // 조회된 데이터


Page 클래스가 제공하는 인터페이스
int getNumber();                     //현재 페이지
int getSize();                            //페이지 크기
int getTotalPages();                 //전체 페이지 수
int getNumberOfElements();   //현재 페이지에 나올 데이터 수
long getTotalElements();         //전체 데이터 수
boolean hasPrevious();    //이전 페이지 여부
boolean isFirst();              //현재 페이지가 첫 페이지 인지 여부
boolean hasNext();           //다음 페이지 여부
boolean isLast();               //현재 페이지가 마지막 페이지 인지 여부
Pageable nextPageable();         //다음 페이지 객체, 다음 페이지가 없으면 null
Pageable previousPageable();   //다음 페이지 객체, 이전 페이지가 없으면 null
List<T> getContent();               //조회된 데이터
boolean hasContent();              //조회된 데이터 존재 여부
Sort getSort();                           //정렬정보
profile
take the bull by the horns
post-custom-banner

0개의 댓글