spring boot pageable start from 1
Spring data JPA에서는 paging을 위한 Pageable 인터페이스를 제공합니다.
https://docs.spring.io/spring-data/jpa/docs/2.2.7.RELEASE/reference/html/#core.web.basic
Spring Data JPA - Reference Documentation
Example 108. Using @Transactional at query methods @Transactional(readOnly = true) public interface UserRepository extends JpaRepository { List findByLastname(String lastname); @Modifying @Transactional @Query("delete from User u where u.active = false") v
docs.spring.io
여기서 주의사항은 page가 0부터 시작한다는 것입니다.
0부터 시작하는 것 때문에 협업을 할 때 문제가 발생할 수 있습니다. front에서 사용하는 grid 라이브러리가 1부터 시작하기 때문입니다.
Pageable의 page, size의 기본 설정을 바꾸고 싶다면 PageableHandlerMethodArgumentResolverCustomizer interface를, sort의 기본 설정을 바꾸고 싶다면 SortHandlerMethodArgumentResolverCustomizer interface를 커스터마이징 하면 됩니다.
@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
};
}
}
코드에 수정하기 싫을 경우 다음과 같이 application.yml(properties)에 설정할 수도 있습니다.
spring:
data:
web:
pageable:
default-page-size: 10
one-indexed-parameters: true