IT/JPA
양방향 연관관계
WsCode
2022. 6. 1. 17:08

지금까지 회원에서 팀으로만 접근하는 N : 1 단방향 매핑으로 알아보았습니다.
이번에는 반대 방향인 팀에서 회원으로 접근하는 관계를 추가하겠습니다.
회원에서 팀으로 접근하고 반대 방향인 팀에서 회원으로 접근할 수 있도록 양방향 연관관계로 매핑해보겠습니다.

그림과 같이 회원과 팀은 N : 1 관계입니다.
반대로 팀에서 회원은 1 : N 관계입니다.
1 : N 관계는 여러 건과 연관관계를 맺을 수 있으므로 컬렉션을 사용해야 합니다.
Team.members를 List컬렉션으로 추가했습니다.
회원 -> 팀 (Member.team)
팀 -> 회원 (Team.members)
JPA는 List를 포함해서 Collecatino, set, Map같은 다양한 컬렉션을 지원합니다.
DB테이블은 외래키 하나로 양방향으로 조회할 수 있습니다.

두 테이블의 연관관계는 외래 키 하나만으로 양방향 조회가 가능하므로 처음부터 양방향 관계입니다.
따라서 DB에 추가할 내용은 전혀없습니다.
TEAM_ID 외래 키를 사용해서 MEMBER JOIN TEAM이 가능하고 반대로 TEAM JOIN MEMBER도 가능합니다.