[JPA] 양방향 연관 관계란? (양방향 매핑 규칙을 알아보자)

송하연·2024년 1월 29일
0

스프링부트🌱

목록 보기
4/8
post-thumbnail

객체와 테이블의 연관관계 비교


객체 연관관계 (단방향 연관 관계가 2개)

  • 회원 -> 팀
  • 팀 -> 회원

테이블 연관관계(양방향 연관 관계가 1개)

  • 회원 <-> 팀

테이블, 객체의 차이점


테이블 : 외래키 하나로 양방향 조인 가능

객체 : 참조용 필드가 있는 쪽으로만 참조 가능(단방향)

단방향 연관관계 :


  • 한 객체가 다른 객체와의 관계를 알지만, 그 역은 성립하지 않는 경우

양방향 연관관계 :


  • 두 객체 간의 관계가 서로에게 양방향으로 연결되어 있는 경우

    💡 양방향 연관관계에서 연관관계의 주인
    ⇒ 외래키가 있는 곳을 주인으로 정하자

DB에서 외래키가 있는 쪽이 다(Many)가 된다.
다(Many)가 연관관계의 주인이 된다.

양방향 매핑 규칙


  • 객체의 두 관계 중 하나를 연관관계의 주인으로 지정(외래 키 관리)
  • 주인이 아닌 쪽은 읽기만 가능
  • 주인은 mappedBy 사용 X, 주인이 아니면 mappedBy사용

양방향 매핑시 가장 많이 하는 실수

연관관계의 주인에 값을 입력하지 않음 (양쪽에 값을 설정하자)

⇒ 단방향 매핑 완료 후 양방향은 필요할 때 추가해도됨

⇒ 연관관계의 주인은 외래 키의 위치 기준으로

⇒ 주인의 반대편은 외래 키에 영향을 주지 않음(조회만 가능)

0개의 댓글