[JPA] 엔티티 연관관계의 주인
Entity
연관관계의 주인
개념
외래키를 관리할 객체를 말한다.
엔티티의 연관관계는 테이블에서와 객체에서 각각 존재한다.
테이블에서는 사실 연관관계의 주인이 누구건간에 테이블 구조는 똑같다.
두 테이블 중 외래키를 갖고 있는 곳은 한 곳이며, 이 외래키 하나로 양쪽 테이블이 서로 조인하여
데이터를 가져올 수 있다.
하지만, 객체에서는 다르다.
두 테이블 A와 B가 N : 1로 연관관계가 매핑되어 있다면
A에는 B를 객체로 생성할 수 있고, B에서도 A를 List에 넣어 관리할 수 있다.
1 : 1 혹은 N : N으로 매핑되어 있다고 가정해도,
동일하게 양 쪽 모두에서 서로를 객체로 생성하여 관리할 수 있다.
이런 차이 때문에 두 객체 중 한 곳에서 외래키를 관리할 수 있도록 연관관계의 주인을 정해줘야 한다.
연관관계의 주인이 되는 주 테이블에서는 외래키를 관리(등록, 수정, 삭제)할 수 있다.
연관관계의 주인이 아닌 대상 테이블에서는 외래키를 조회할 수만 있다.

그래서 두 테이블 중 어느 테이블을 주인으로 정해야 할까?
사실 명확한 정답은 없다.
테이블 자체는 동일하기 때문에 두 객체 중 어느 곳이라도 주인이 될 수 있기 때문이다.
여러가지 이야기가 많지만 현재까지 연관관계의 주인을 정하는 가장 편리하고 효율적인 방법은
외래키를 가진 쪽을 주인으로 정하는 것이다.

길게 고민할 것 없이 외래키를 갖는 쪽으로 정하면 몸도 마음도 편할 것!
다양한 연관관계 매핑
https://imcoding.tistory.com/57
[JPA] 다대일 연관 관계 매핑
Entity 다대일 연관 관계 매핑 연관관계의 주인? 연관관계의 주인에 대한 개념이 없다면 아래 글을 먼저 읽고 오시길 권장드립니다. https://imcoding.tistory.com/56 [JPA] 엔티티 연관관계의 주인 연관관계
imcoding.tistory.com
https://imcoding.tistory.com/58
[JPA] 일대다 연관 관계 매핑
Entity 일대다 연관 관계 매핑 읽기 전에 참고하면 좋은 글 더보기 https://imcoding.tistory.com/56 [JPA] 엔티티 연관관계의 주인 연관관계의 주인 개념 외래키를 관리할 객체를 말한다. 엔티티의 연관관계
imcoding.tistory.com