@GetMapping("/members")
public Page<MemberDto> memberList(Pageable pageable) {
Page<Member> page = memberRepository.findAll(pageable);
return page.map(member -> new MemberDto(member.getId(), member.getUserName()));
}
Pageable 은 요청된 페이징 값을 구현체인 PageRequest 객체를 생성한 후 값을 주입해준다.글로벌 설정 - yml
spring.data.web.pageable.default-page-size=20 /# 기본 페이지 사이즈/
spring.data.web.pageable.max-page-size=2000 /# 최대 페이지 사이즈/
@PageableDefault 어노테이션을 사용
@GetMapping("/members")
public Page<MemberDto> memberList(@PageableDefault(size = 12, sort = "userName",
direction = Sort.Direction.DESC) Pageable pageable) {
...
}
페이징 정보가 둘 이상일 경우 접두사로 구분
@Qualifier 에 접두사명 추가 “{접두사명}_Xxx”
예) /members?member_page=0&order_page=1
public String list(
@Qualifier("member") Pageable memberPageable,
@Qualifier("order") Pageable orderPageable, ...
@ModelAttribute 를 사용하면 될듯하다.