내용을 이해하기에 앞서 먼저 꼭 알아야 하는 것을 몇 가지 정리해보자.
엔티티들은 다른 엔티티와 연관관계를 맺는다.
→ 이 둘은 완전히 다른 특징을 가진다.
ORM (객체 관계 매핑)에서 가장 어려운 부분이 바로 객체관계와 테이블 연관관계를 매핑하는 것이다. 즉, 객체의 참조와 테이블의 외래키를 매핑하는 것이 이 장의 목표다!
아래와 같은 요구사항이 있다고 가정해보자.
객체 연관관계
회원 N : 1 팀 의 관계를 가지므로 회원 객체는 Member.team 필드로 팀 객체와 연관관계를 맺는다.
회원은 Member.team 필드를 통해 팀을 알 수 있지만, 팀은 회원을 알 수 없다. (필드가 없으니까)
→ 회원과 팀 객체는 단방향 관계임을 확인!
테이블 연관관계
회원 테이블은 team_id 외래키로 팀 테이블과 연관관계 맺는다.
회원은 team_id 로 팀을 조인함으로써 팀과 회원 모두 조회가 가능하다.
→ 회원과 팀 테이블은 양방향 관계임을 확인!