스프링 부트 + JPA (@OneToMany, @ManyToMany) 작업 도중 만나게 된 에러 내용
Caused by: org.hibernate.AnnotationException:
mappedBy reference an unknown target entity property:
이 에러의 주된 원인은 연관관계를 맺고 있는 변수를 잘못 적거나 착각하거나 오타를 냈을 때 일어난다.
@Entity
public class Member {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@ManyToMany
@JoinTable(name = "MEMBER_PRODUCT",
joinColumns = @JoinColumn(name = "MEMBER_ID"),
inversJoinColumns = @JoinColumn(name = "PRODUCT_ID"))
private List<Product> products = new Arraylist<Product>();
}
@Entity
public class Product {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToMany(mappedBy = "products")
private List<Member> members;
}
List의 변수명 'products'와 mappedBy 텍스트가 정확하게 일치해야 한다. 자동완성으로 'productList'란 변수명을 만들고 mappedBy에는 'product'를 작성하면 타겟 엔티티를 못찾겠다는 에러메세지가 출력된다.
댓글 없음:
댓글 쓰기