기능 시나리오에 따라 pageable이 적용되는 것과 적용되지 않은 것, 두 형태로 반환하는 기능이 존재하여 관련 기능 구현 간 메소드 재활용을 위해
기존 Page 객체를 반환하고 인자로 Pageable 전달하는 DAO 메소드에 unpaged로 적용된 Pageable을 전달하도록 구현하였습니다.
허나, 해당 기능 테스트 간 아래와 같은 오류가 발생합니다.
- 캐모마일 내 페이지네이션 처리 지원을 위한 인터셉터에서 upaged인 Pageable에 대한 offset 조회 시 발생하는 것으로 보입니다.
Caused by: java.lang.UnsupportedOperationException at org.springframework.data.domain.Unpaged.getOffset(Unpaged.java:96) at net.lotte.chamomile.module.database.mybatis.pageable.PageableInterceptor.intercept(PageableInterceptor.java:80) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62) at com.sun.proxy.$Proxy277.query(Unknown Source) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566)
개발 환경
- JDK 11
- chamomile 3.0.4.1-SNAPSHOT
- mybatis
이 상현 Answered question 2025년 06월 26일
안녕하세요.
기능 테스트 및 이슈 내용 공유해주셔서 감사합니다.
Pageable.unpaged 에 대한 (페이징 처리 하지 않는)상황은 고려되지 않아서 오류가 발생하는 것 같습니다.
해당 요청에 대한 부분도 고려해서 기능 개선을 하도록 하겠습니다.
감사합니다.
참고로, 페이징 사용시에는 PageRequest 나 Default 값을 지정해주시는 것을 권장드리고 있습니다.
unpaged 는 한정된 상황에서 사용해 주세요.
이 상현 Answered question 2025년 06월 26일