Fall in IT.

Spring Data JPA 페이징과 정렬 본문

프레임워크/Spring Data JPA

Spring Data JPA 페이징과 정렬

D.Y 2016. 3. 28. 13:51

오늘은 Spring Data JPA에서 페이징처리와 정렬을 사용하는 방법에 대해서 알아보겠습니다.



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 hasPreviousPage();    //이전 페이지 여부
boolean isFirstPage();              //현재 페이지가 첫 페이지 인지 여부
boolean hasNextPage();           //다음 페이지 여부
boolean isLastPage();               //현재 페이지가 마지막 페이지 인지 여부
Pageable nextPageable();         //다음 페이지 객체, 다음 페이지가 없으면 null
Pageable previousPageable();   //다음 페이지 객체, 이전 페이지가 없으면 null
List<T> getContent();               //조회된 데이터
boolean hasContent();              //조회된 데이터 존재 여부
Sort getSort();                           //정렬정보

모두 즐거운 코딩하세요~



Comments