Spring/JPA

Repository 작명 이슈 (mapping.PropertyReferenceException)

whyWhale 2023. 2. 15.

상황

Caused by: org.springframework.data.mapping.PropertyReferenceException: No property '${customRepository method name}' found for type '${entity type}'

JPA에서 제공하는 쿼리를 사용하지 않고 커스텀해서 사용하기 위해 커스텀한 레포지토리를 만들었다.

그런데 관련 메소드에 프로퍼티가 없다라는 로그를 찍고 애플리케이션이 실행되지 않았다.

원인 분석

  • 관련 자료를 찾아보니 네이밍을 짓는 규칙이 있는 것 같음.
  • 실제로 코드에서 어떻게 읽어오는지 알 수 는 없었음.

해결 [이름을 잘 지어야 한다.]

custom${EntityName}Repsitory ← custom${EntityName}RepositoryImpl

이런식의 구조로 이름을 지어야 함. 또는

${EntityName}CustomRepsitory ← ${EntityName}CustomRepositoryImpl

Impl 이름을 쓰지 않으면 해당 예외가 발생하니 주의해야 한다.

댓글