Close
Close full mode
logo만렙 개발자 키우기

6장. 다양한 연관관계 매핑

Git RepositoryEdit on Github
Last update: a year ago by nowwaterReading time: 2 min

🤸‍♂️목차

  • 다대일
  • 일대다
  • 일대일 [1:1]
  • 다대다 [N:N]
  • 정리

이 장에서는 O 대 O 에서 왼쪽을 연관관계의 주인으로 가정하여 분류하였다.

엔티티 연관관계 매핑 시 고려사항

1. 다중성

  • 다대일(@ManyToOne), 일대다(@OneToMany), 일대일(@OneToOne), 다대다(@ManyToMany)
  • 다중성을 판단하기 어려울 때는 반대방향을 생각해본다.
  • 일대다의 반대방향은 항상 다대일, 일대일의 반대방향은 항상 일대일
  • 보통 다대일과 일대다 관계를 가장 많이 사용. 다대다 관계는 실무에서 거의 사용 X

2. 단방향, 양방향

  • 단방향 관계 : 객체 관계에서 한 쪽만 참조하는 것
  • 양방향 관계 : 양쪽이 서로 참조하는 것

3. 연관관계의 주인

  • 엔티티 양방향 매핑 시 2곳에서 서로를 참조한다. -> 객체의 연관관계 관리 포인트 2곳
  • JPA는 두 객체 연관관계 중 하나를 정해서 데이터베이스 외래 키를 관리한다. -> 연관관계의 주인을 설정한다.
  • 외래 키를 가진 테이블과 매핑한 엔티티가 외래 키를 관리하는 것이 효율적이어서 보통 연관관계의 주인으로 선택한다.
  • 주인이 아닌 방향은 외래 키를 변경할 수 없고 읽기만 가능하다.

모든 연관관계

1. 다대일 : 단방향, 양방향

2. 일대다 : 단방향, 양방향

3. 일대일 : 주 테이블 단방향, 양방향

4. 일대일 : 대상 테이블 단방향, 양방향

5. 다대다 : 단방향, 양방향

🚀 JPA — Previous
(7) 정리
Next — 🚀 JPA
(1) 다대일