양방향 관계에서 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을 조인하지 않을까 한다.
'Spring > 스프링 부트' 카테고리의 다른 글
| 2021-11-11 (회고록) 11일 공부정리 (0) | 2021.11.11 |
|---|---|
| 2021-10-25(JPA 공부) 프록시 객체 (0) | 2021.10.25 |
| 2021-10-22(스프링) 22일 공부 정리 (0) | 2021.10.22 |
| 2021-10-17(회고록) 일기 (0) | 2021.10.17 |
| 2021-10-17(JPA 공부) 연관관계의 주인 (0) | 2021.10.17 |