Spring Data JPA에서는 쿼리 메소드에 페이징과 정렬 기능을 제공하는 2가지 클래스를 제공합니다.
org.springframework.data.domain.Sort : 정렬 기능
org.springframework.data.domain.Pageable : 페이징 기능
Sample Code
public interface MemberRepository extends Repository<Member, Long> {
Page<Member> findByUsername(String name, Pageable Pageable);
}
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();
Pageable previousPageable();
List<T> getContent();
boolean hasContent();
Sort getSort();