인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

성문님의 프로필 이미지
성문

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

31강. 대출 기능 개발하기

오류발생코드질문드립니다

작성

·

317

0

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'bookService' defined in file [C:\Users\user\OneDrive\���� ȭ��\����ڷ�\Java_Spring_Library_Application new\library-app\library-app\build\classes\java\main\com\group\libraryapp\service\book\BookService.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userLoanHistoryRep' defined in com.group.libraryapp.repstory.user.userloan.UserLoanHistoryRep 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 boolean com.group.libraryapp.repstory.user.userloan.UserLoanHistoryRep.existIsBookNameAndIsReturn(java.lang.String,boolean); Reason: Failed to create query for method public abstract boolean com.group.libraryapp.repstory.user.userloan.UserLoanHistoryRep.existIsBookNameAndIsReturn(java.lang.String,boolean)! No property 'existIsBookName' found for type 'UserLoanHistory'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract boolean com.group.libraryapp.repstory.user.userloan.UserLoanHistoryRep.existIsBookNameAndIsReturn(java.lang.String,boolean)! No property 'existIsBookName' found for type 'UserLoanHistory'

요약해보면 자바의 DTO객채의 이름하고 mysql에있는 테이블의 이름과 일치 하지않아서오류가 발생하는듯하는듯한데 왜 오류가 발생할까요? 객채생성하고 테이블올려드릴게요

답변 2

1

성문님의 프로필 이미지
성문
질문자

메소드명을 existsByBookNameAndIsReturn으로 수정해주니 잘되네요. existsByBookNameAndIsReturn이 메소드는 개발자가 임의로 정해주면 안되는거고 JPA에서 알아볼수있게끔 정해줘야하는거같네요

0

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요 성문님!! 좋은 질문 감사합니다! 😊

네네 맞습니다! findBy 혹은 existsBy 등으로 시작해서 Entity의 필드 이름과 조합되는 메소드는 메소드 이름을 토대로 SQL 을 자동 생성해주기 때문에 JPA에서 알아볼 수 있게끔 정해진 규칙에 따라 이름을 적어주셔야 합니다.

또 궁금한 점 있으시면 편하게 질문 주세요~ 감사합니다! 👍 🙇

성문님의 프로필 이미지
성문

작성한 질문수

질문하기