작성
·
412
0
답변 10
2
많은 부분이 편의를 위해 추상화되어 있어서 그렇게 느끼실 수 있을 것 같습니다.
아래 공식 문서를 참고하시면 대략적으로 어떤 느낌인지 아시는데 도움되실거에요.
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation
1
0
public class BookMember {
private String bookName;
Optional<BookMember> findByBookName(String bookName);
상기처럼 했더니 에러는 안나네요.
감사합니다. 코볼세데라 어렵네요 ㅋㅋ
개념이 안잡힘
0
0
"findBy" 이후에 엔티티의 속성 이름을 붙이다. 이 속성 이름은 첫 글자는 대문자로 한다.
상기처럼
Optional<BookMember> findByBook_name(String book_name);
으로 바꾸고 BookMember에도 book_name인데
private String book_name;
Failed to create query for method public abstract java.util.Optional book.booksmag.repository.SpringDataJpaBookMemberRepository.findByBook_name(java.lang.String)! No property 'book' found for type 'BookMember'!
왜 Book_name이 아니고 'book' 으로 인식되나요?
"_"를 쓰면 안되나요?
귀찬게 해서 죄송합니다.
0
질문자 분께서 repository 메서드를 findByName으로 지었기 때문에 name 필드가 존재해야 합니다.
1. repository의 메서드명을 관례에 맞게 수정하는 방법
2. 테이블 구성을 변경하는 방법
2가지 옵션이 있습니다.
본인이 할 수 있는 방법으로 변경해주시면 됩니다.
아울러, jparepository를 구현하고 메서드를 만들 경우 어떻게 쿼리가 만들어지는지에 대해 학습하시면 도움이 되실 것 같습니다.
0
name이라는 필드는 필수로 있어야하나요?
테이블 구성이
CREATE TABLE BOOK_MAG
(BOOK_ID NUMBER(13) PRIMARY KEY,
BOOK_NAME VARCHAR(255),
BOOK_KDC NUMBER(3),
BOOK_PUBLISHER_BUSINESS_NO NUMBER(10),
BOOK_PUBLISHER VARCHAR(255),
BOOK_AUTHOR_ID NUMBER(9),
BOOK_AUTHOR VARCHAR(255),
BOOK_MAKE_DATE DATE,
BOOK_PRICE NUMBER(13)
);
이런데요?
0
No property 'name' found for type 'BookMember'!
BookMember 타입에 'name'이라는 프로퍼티가 없다는 오류입니다.
올려주신 코드를 보니 해당 객체에 name이라는 필드가 보이지 않습니다.
0
빠른 답변 감사합니다.
BookMember에
@Entity
@Table(name="book_mag")
public class BookMember {
// @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
private Long book_id; //BOOK_ID NUMBER(13) PRIMARY KEY
private String book_name; //BOOK_NAME VARCHAR(255),
private Long book_kdc; //BOOK_KDC NUMBER(3),
상기 처럼 되있고
SpringDataJpaBookMemberRepository에
public interface SpringDataJpaBookMemberRepository extends JpaRepository<BookMember,Long>, BookMemberRepository {
@Override
Optional<BookMember> findByName(String book_name);
}
상기처럼 했는데도 동일 에러 나오는데요? 어떻게해야할지 모르겠어요?
Failed to create query for method public abstract java.util.Optional book.booksmag.repository.SpringDataJpaBookMemberRepository.findByName(java.lang.String)! No property 'name' found for type 'BookMember'!
0
안녕하세요. ktwmomo님, 공식 서포터즈 David입니다.
에러를 잘 들여다보면 이유가 나와있습니다.
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'springConfig' defined in file [C:\Users\kimtw\Desktop\spring study\books-mag\books-mag\out\production\classes\book\booksmag\SpringConfig.class]: Unsatisfied dependency expressed through constructor parameter 0;
=> springConfig 빈을 생성하지 못한다
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springDataJpaBookMemberRepository' defined in book.booksmag.repository.SpringDataJpaBookMemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed;
=> springDataJpaBookMemberRepository 빈을 생성하지 못한다.
nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.util.Optional book.booksmag.repository.SpringDataJpaBookMemberRepository.findByName(java.lang.String)!
=> findByName 쿼리를 생성하지 못한다.
Reason: Failed to create query for method public abstract java.util.Optional book.booksmag.repository.SpringDataJpaBookMemberRepository.findByName(java.lang.String)!
No property 'name' found for type 'BookMember'!;
=> 그 이유는 BookMember에 name 프로퍼티가 없어서
nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.Optional book.booksmag.repository.SpringDataJpaBookMemberRepository.findByName(java.lang.String)!
No property 'name' found for type 'BookMember'!
위 정보를 토대로 BookMember를 다시 살펴보시고 시도해주세요.
감사합니다.
감사합니다.