list(Pageable pageable) { return memberRepository.findAll(pageable); }"> list(Pageable pageable) { return memberRepository.findAll(pageable); }"> list(Pageable pageable) { return memberRepository.findAll(pageable); }">
@GetMapping("/members")
public Page<Member> list(Pageable pageable) {
return memberRepository.findAll(pageable);
}
http://localhost:8080/members?size=5&page=1&sort=id,desc&sort=username,desc
이러한 요청 파라미터를 줄 수 있다.
기본 값을 바꾸고 싶을 때는? size를 디폴트로 10개 하고 싶은 경우
글로벌
spring:
data:
web:
pageable:
default-page-size: 10
max-page-size: 2000
수동 설정
@GetMapping("/members")
public Page<Member> list(@PageableDefault(size = 5) Pageable pageable) {
return memberRepository.findAll(pageable);
}
이런 식으로 가능
페이징 정보가 둘 이상이면 접두사로 구분
@GetMapping("/members")
public Page<MemberDTO> list(@PageableDefault(size = 5) Pageable pageable) {
return memberRepository.findAll(pageable).map(member -> new MemberDTO(member.getId(), member.getUsername()));
}
API를 반환할 때는 항상 DTO로!