고딩왕 코범석

Unable to locate appropriate constructor on class [클래스 경로]. Expected arguments are: types 본문

Errors

Unable to locate appropriate constructor on class [클래스 경로]. Expected arguments are: types

고딩왕 코범석 2020. 12. 27. 08:29
반응형

오늘은 이 에러에 대해서 정리해보겠다.

스프링 데이터 JPA를 학습하는 와중에 서버를 다시 올렸을 때 발생했다.

image

image

이 에러였는데 먼저 Dto 클래스에서 생성자에 대한 에러였다.

image

아놔 이 뿡빵 이게 뭐가 문젠데!

한 2~30분간 얼탔다. 에러 메세지를 좀 더 자세히 읽어보았다.

Error creating bean with name 'memberRepository' defined in springData.jpa.repository.MemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List springData.jpa.repository.MemberRepository.findMemberDto()!


냄새 맡았다. 진한 글씨로 가보자!

image

아! 해당 쿼리를 날리고 DTO로 변환시키는 과정에서 매개변수 타입이 일치하지 않아 발생한 에러구나!

강의에서 들었던 내용들을 기억해보면 NamedQuery, @Query를 이용해서 JPQL을 작성할 경우 애플리케이션 로딩 시점에 에러가 발생한다는 것을 직접 체감했다.

image

에러 메세지를 좀 더 심도있게 읽는 연습을 해야겠어. 그럼 오늘은 여기까지!

반응형