('07:50) 실행시 `BeanCreationException` 에러 관련
강의 기준 ('07:50) 스프링 부트 실행시,
BeanCreationException오류가 발생합니다. 아래는 콘솔창의 에러문 입니다에러 메세지를 보면 Category 와 Item 클래스간 매핑이 되지 않았다 라는 식의 메세지가 확인됩니다
코드 상으로는 연관관계 매핑이 되어 있는데 어떤 이유인지 모르겠습니다 ㅠ
콘솔-오류 메시지
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.jpabook.jpashop.domain.item.Item.categories[jdk.jfr.Category]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804) ~[spring-beans-5.3.23.jar:5.3.23]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.23.jar:5.3.23]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.23.jar:5.3.23]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.23.jar:5.3.23]
Category
@Entity
@Getter
@Setter
public class Category {
@Id
@GeneratedValue
@Column(name = "category_id")
private Long id;
private String name;
@ManyToMany
@JoinTable(name = "category_item",
joinColumns = @JoinColumn(name = "category_id"),
inverseJoinColumns = @JoinColumn(name = "item_id"))
private List<Item> items = new ArrayList<>();
@ManyToOne
@JoinColumn(name = "parent_id")
private Category parent;
@OneToMany(mappedBy = "parent")
private List<Category> child = new ArrayList<>();
}
Item
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "dType")
@Getter @Setter
public abstract class Item {
@Id @GeneratedValue
private Long id;
private String name;
private int price;
private int stockQuantity;
@ManyToMany(mappedBy = "items")
private List<Category> categories = new ArrayList<>();
}
답변 3
1
안녕하세요 지나가는 1인 입니다.
저도 비슷한 문제가 생겨서 맨땅에 해딩을 하다가 겨우 해결을 했는데 정확한 답변이 될지는 모르겠으나 혹시나 도움이 될까 하여 이렇게 몇자 끄적입니다.
Item class 부분에서
@Id @GeneratedValue @Column(name = "item_id") private Long id;
@Column(name = "item_id") <--- 요부분이 빠진 것 같습니다.
혹시나 님께 도움이 될까 하여 몇자 끄적였습니다. ^^;;
0

코드 확인해보았습니다. Item클래스의 category Import를 보시면, 강의에서 생성한 카테고리가 아니네요 ^^
임포트를 수정하고 확인해주세요 :)
0
안녕하세요. sy k님, 공식 서포터즈 OMG입니다.
.
Eddie님의 답변을 참고해주시고, 해결이 안될 경우 댓글남겨주세요:)
.
감사합니다.
0
기존 생성된 테이블을 삭제하시고, 다시 실행해보시겠어요?
이전에 생성된 테이블 속성이 남아 있어서 해결이 안된 걸 수도 있을 것 같아요.
삭제해도 동일한 문제가 발생할 경우 댓글남겨주세요
0
코드를 확인해봐야 알 것 같습니다.
전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
https://bit.ly/3fX6ygx
ㅁ 업로드 시 권한 문제 꼭 확인해주세요
공유 기본 설정은 비공개로 되어 있어 업로드 한 본인 계정만 접근이 가능합니다.
본인 계정이 아닌 링크를 통한 타 계정 접근이 가능한지 확인하는 방법은 업로드 한 구글 계정을 로그아웃하고 링크를 접속하여 "액세스 권한 요청 화면"이 출력되는지 확인을 해주세요.
감사합니다
sdk 설정 오류
0
43
2
오탈자 - @Transactional
0
52
1
src/test/resources 테스트 경로 문제
0
49
1
상품 등록후 H2 db 출력 순서 바꿀 수 있나요?
0
62
1
MemberRepositoryTest 실행오류
0
73
1
boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)
1
181
2
강의 마지막 QueryDSL 사용 부분 질문있습니다
1
135
2
클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.
0
50
1
도메인 모델 패턴 vs 트랜잭션 스크립트 패턴
0
71
1
기본 생성자
0
59
1
h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.
0
100
1
멤버서비스테스트 부분에서 막힙니다.
0
163
4
실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?
0
115
1
초반에 h2 다운로드 과정 꼭 필요한가요?
0
117
2
자신 필드에도 get으로 접근하는 이유가 있을까요?
0
108
1
24분 27초 연관관계 편의 메서드 위치
0
112
1
단건 주문만 가능하게 한건 의도한 부분이신가요?
0
106
2
빌드 툴, Gradle
0
57
1
h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다
0
73
2
Repository에서 EntityManager 주입 방식 차이
0
87
1
롬복과 사용자 정의 setter 메서드
0
70
1
주문 목록 조회 fetch join 질문드립니다
0
79
1
dirty checking 질문드립니다.
0
78
1
동시성 관련 질문입니다
0
70
1





