@OneToMany를 사용하면 mappedBy속성을 사용하게 된다. 왜 필요할까?
양방향이라는 말은 서로 다른 단방향 연관관계 2개를 애플리케이션 로직으로 잘 묶어서 양방향인 것처럼 보이게 할 뿐이다. 데이터 베이스 테이블은 외래키 하나로 양쪽이 서로 조인할 수있다.
테이블은 외래 키 하나로 두 테이블의 연관관계를 관리한다. 엔티티를 단방향으로 매핑하면 참조를 하나만 사용하므로 이 참조로 외래키를 관리하면 된다.
두 객체 연관관계 중 하나를 정해서 테이블의 외래키를 관리해야 하는데 이것을 연관관계의 주인이라고 한다.
연관관계의 주인만이 데이터 베이스 연관관계와 매핑되고 외래키를 관리할 수 있다. 반면에 주인이 아닌 쪽은 읽기만 할 수 있다.
주인은 mappedBy 속성을 사용하지 않는다.
주인이 아니면 mappedBy 속성을 사용해서 속성의 값으로 연관관계의 주인을 지정해야한다.
연관관계 주인을 정한다는 것은 사실 외래키 관리자를 선택하는 것이다.
'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-16(JPA 공부) 공부 내용 정리 (0) | 2021.10.16 |




















