Spring data jpa를 사용하면 paging 하기 쉽게 Pageable 인터페이스를 제공해준다.
https://docs.spring.io/spring-data/jpa/docs/2.2.7.RELEASE/reference/html/#core.web.basic
고려해야할 점이 있다면, page 가 0부터 시작한다는 점이다.
page, size의 기본 설정을 바꾸고 싶다면, interface ' PageableHandlerMethodArgumentResolverCustomizer ' 를
sort의 기본 설정을 바꾸고 싶다면, interface ' SortHandlerMethodArgumentResolverCustomizer '를 커스터마이징 해주면 된다.
@Bean
public PageableHandlerMethodArgumentResolverCustomizer customize() {
return p -> p.setOneIndexedParameters(true);
}
setOneIndexedParameter 를 true로 설정해주면, page가 1부터 시작한다.
@Bean
public PageableHandlerMethodArgumentResolverCustomizer customize() {
return p -> {
p.setMaxPageSize(10); // size=10
};
}
setMaxPageSize에 한 페이지당 출력할 size를 정할 수 있다.
전체 소스
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public PageableHandlerMethodArgumentResolverCustomizer customize() {
return p -> {
p.setOneIndexedParameters(true); // 1부터 시작
p.setMaxPageSize(10); // size=10
};
}
}
yml에 지정에 줄 수도 있다.
spring:
data:
web:
pageable:
default-page-size: 10
one-indexed-parameters: true
한계
이 방법은 한계가 있다.
결과로 반환된 Page 정보에 pageable.pageNumber, number 가 0부터 시작하기 때문에 request로 온 page와 -1씩 차이가 난다. 해당 한계를 감안하고 사용해야 한다.
'개발~ > JAVA' 카테고리의 다른 글
Kotlin 소개 (0) | 2022.12.10 |
---|---|
Log4j 사용하기 (0) | 2019.12.19 |
JSON 빈 객체를 단말에 어떻게 내려줄까?(Android,iOS) (0) | 2019.04.25 |
주석이쁘게 달기 (0) | 2017.06.16 |
[JAVA] java.util.Date (0) | 2017.03.17 |