양방향 관계에서 JPA 연관관계 주인은 외래 키가 있는 곳을 설정하라

@JoinColumn : 외래 키를 매핑할 때 사용한다.

name = 매핑할 외래 키 이름

referencedColumnName = 외래 키가 참조하는 대상 테이블의 컬럼명

foreginKey(DDL) 외래 키 제약조건을 직접 지정할 수 있다.

 

@ManyToOne 어노테이션은 다대일 관계에서 사용한다.

 

 

내 생각


 

그럼 회원의 주문 정보를 저장한다고 했을 때 회원은 상품 리스트를 1개 이상 가질 수 있고, 상품 리스트는 회원을 1명 이상 가질 수 있으며 회원 정보를 읽을 수만 있지 상품에서 회원을 넣을 수 없다고 가정했을 때

 

-User

@ManyToOne

private List<Goods> list;

 

-good

@OneToMany(mappedBy = "Order_list")

private List<User> user;

 

mappedby가 없다면 -good의 데이터베이스에서 회원을 넣을 수 있게 되며 회원이 상품을 선택해야 하는 상황에 상품도 회원을 선택하는 것이 되므로 말이 안 되는 상황이 된다. 상품은 회원을 읽을 수만 있고 쓰지는 못한다. 그런데 왠지 주문 리스트를 데이터베이스에 따로 두고 user와 goods을 조인하지 않을까 한다.

+ Recent posts