TroubleShooting

[JPA] java.lang.NoSuchMethodException: org.springframework.data.domain.Pageable.<init>

에디개발자 2020. 12. 11. 07:00
반응형

오늘도 어김없이 Exception 발생했네요! 

요즘은 Exception이 발생하면 어떻게 풀어서 블로그를 작성할까하고 Exception을 기다리고 있습니다 :)

나를 닮았다고 한다...

증상

오늘 발생한 에러는 Querydsl에 Paging 처리가 필요하여 Pageable을 사용했을 때 발생하는 에러였습니다.

아래와 같은 코드를 작성하여 Parameter로 Pageable 객체를 받는 부분에서 에러가 발생하였습니다.

@RestController
@RequiredArgsConstructor		// DI
public class StoreController {

    private final StoreService storeService;

    @GetMapping(value = "/stores/{storeId}")
    pubic DefaultResponse searchAll(@PathVarible("storeId") Long storeId, Pageable pageable) {
        List<Store> stores = storeService.searchAll(storeId, pageable);
        return ResponseUtils.list(stores, HttpStatus.OK);
    }

}
java.lang.NoSuchMethodException: org.springframework.data.domain.Pageable.<init>()

 

해결

WebMvcConfigurationSupport 상속받아 PageableHandlerMethodArgumentResolver를 추가해줍니다.

아래 소스와 같이 addArgumentResolvers 메서드를 Override하여 추가해줍시다!
@Configuration
public class WebMvcConfiguration extends WebMvcConfigurationSupport {

    @Override
    protected void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
        argumentResolvers.add(new PageableHandlerMethodArgumentResolver());
        super.addArgumentResolvers(argumentResolvers);
    }
    
}    

SortResolver를 추가해주는 코드입니다. 

 

반응형