[ JPA ] 양방향 연관관계와 연관관계의 주인1

유기훈·2022년 9월 25일
0

JPA

목록 보기
5/13
post-thumbnail

Member와 Team이 있다고 생각해보자. 이 둘은 1 : N 관계이다. 이 둘은 테이블에서 외래 키 하나로 두 테이블의 연관관계를 관리한다. 하지만 객체에서는 그렇지 않다. 각 객체에서 연관관개의 객체를 사용하려면 Member는 Team을 갖고 있어야 하고 Team에서도 Member 클래스들을 List 형태로 갖고 있어야 한다. 그렇다면 Member가 Team을 바꿨을 때 Member에 있는 team을 바꿔야할까 Team에 있는 members를 바꿔야할까. 이런경우를 대비하기 위해 둘 중 하나로 외래키를 관리해야 한다. 이를 연관관계의 주인(Owner)라고 한다.

양방향 매핑 규칙

  • 연관관계의 주인만이 외래 키를 관리(등록, 수정)
  • 주인이 아닌쪽은 읽기만 가능 (set이 불가능)
  • 주인은 mappedBy 속성 사용X
  • 주인이 아니면 mappedBy 속성으로 주인 지정

누구를 주인으로?

  • 외래 키가 있는 곳을 주인으로 정해라
  • 여기서는 Member.team이 연관관계의 주인
  • 1 : N 이면 N을 주인으로 하라는 뜻
profile
개발할 수 있어 감사하다

0개의 댓글