프레임워크/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<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(); //정렬정보
모두 즐거운 코딩하세요~
반응형