[Spring boot] org.springframework.beans.factory.UnsatisfiedDependencyException JPA 에러
사용코드
DTO.java에서 private String interest_nm; 설정
에러
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'interestController' defined in file [C:\Users\user\Desktop\Company\jackdang\BE\jackdang\bin\main\com\jackdang\controller\interests\InterestController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'interestService' defined in file [C:\Users\user\Desktop\Company\jackdang\BE\jackdang\bin\main\com\jackdang\service\interests\InterestService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'interestRepository' defined in com.jackdang.domain.repository.interests.InterestRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.util.Optional com.jackdang.domain.repository.interests.InterestRepository.findByMember_idAndInterestNm(java.lang.Long,java.lang.String); Reason: Failed to create query for method public abstract java.util.Optional com.jackdang.domain.repository.interests.InterestRepository.findByMember_idAndInterestNm(java.lang.Long,java.lang.String)! No property 'interestNm' found for type 'Interest' Did you mean ''interest_nm''; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.Optional com.jackdang.domain.repository.interests.InterestRepository.findByMember_idAndInterestNm(java.lang.Long,java.lang.String)! No property 'interestNm' found for type 'Interest' Did you mean ''interest_nm''
해결방법
언더스코어 해지
private String interest_nm; -> private String interestNm;
별첨
JPA에서는 Java 진영에서는 _ 언더스코어와 같은 헝가리안 표기법 및 범위 식별자는 사용하지 않지만 DBA의 경우 테이블 컬럼값을 언더스코어를 자주쓰기에 자동으로 번역하여 컬럼을 생성해준다. 그러므로 _를 사용하지 않고 개발하면 된다.