Page<Member> findByUsername(String name, Pageable pageable); //count 쿼리 사용
Slice<Member> findByUsername(String name, Pageable pageable); //count 쿼리 사용 안함
List<Member> findByUsername(String name, Pageable pageable); //count 쿼리 사용 안함
List<Member> findByUsername(String name, Sort sort);
org.springframework.data.domain.Sort : 정렬 기능org.springframework.data.domain.Pageable : 페이징 기능 (내부에 Sort 포함)
PageRequest.of(2, 10, Sort.by(Sort.Direction.DESC, “index", “sal”));
public interface Page<T> extends Slice<T> {
int getTotalPages(); // 전체 페이지 수
long getTotalElements(); // 전체 데이터 수
<U> Page<U> map(Function<? super T, ? extends U> converter); // 변환기
}
org.springframework.data.domain.Page : 추가 count 쿼리 결과를 포함하는 페이징public interface Slice<T> extends Streamable<T> {
int getNumber(); // 현재 페이지
int getSize(); // 페이지 크기
int getNumberOfElements(); // 현재 페이지에 나올 데이터 수
List<T> getContent(); // 조회된 데이터
boolean hasContent(); // 조회된 데이터 존재 여부
Sort getSort(); // 정렬 정보
boolean isFirst(); // 현재 페이지가 첫 페이지 인지 여부
boolean isLast(); // 현재 페이지가 마지막 페이지 인지 여부
boolean hasNext(); // 다음 페이지 여부
boolean hasPrevious(); // 이전 페이지 여부
Pageable getPageable(); // 페이지 요청 정보
Pageable nextPageable(); // 다음 페이지 객체
Pageable previousPageable();// 이전 페이지 객체
<U> Slice<U> map(Function<? super T, ? extends U> converter); // 변환기
}
org.springframework.data.domain.Slice : 추가 count 쿼리 없이 다음 페이지만 확인 가능
List (자바 컬렉션) : 추가 count 쿼리 없이 결과만 반환
public interface MemberRepository extends Repository<Member, Long> {
Page<Member> findByAge(int age, Pageable pageable);
}