Spring Data JPA) 페이징과 정렬 - WEB 확장

Dokuny·2022년 1월 5일
0

Spring Data가 제공하는 페이징과 정렬 기능을 Spring MVC에서도 사용할 수 있다.

예시

@GetMapping("/members") 
public Page<Member> list(Pageable pageable) {
	Page<Member> page = memberRepository.findAll(pageable); 
    	return page;
}
  • Controller 의 메소드 매개변수로 Pageable을 받을 수 있다.

  • 브라우저에서 쿼리스트링(요청파라미터)으로 Pageable에 값을 넘길 수 있다.

    • 예시 : /members?page=0&size=3&sort=id,desc&sort=username,desc

요청 파라미터

  • page : 현재 페이지,0부터 시작
  • size : 조회할 데이터 수
  • sort : 정렬 조건, sort 파라미터 추가 가능

Pageable 기본값

  • 사이즈를 별도로 지정을 안하면 스프링 부트에서는 글로벌 설정 기본값으로 사이즈가 정해진다.
  • 글로벌 설정에서 기본 값 변경 가능
// application.properties 에 등록을 안하더라도 스프링 부트에선 기본으로 20, 2000으로 등록되어 있다.

spring.data.web.pageble.default-page-size=20 
spring.data.web.pageble.max-page-size=2000 

Pageable 기본값 개별 설정 방법

  • Controller 에서 @PageableDefault 사용
@GetMapping
public String list(
	@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, ...)

출처 : 인프런 - 김영한의 실전! 스프링 데이터 JPA
profile
모든 것은 직접 경험해보고 테스트하자

0개의 댓글