TIL
JPA 연관관계 매핑
가을맛
2024. 4. 27. 13:51
예제 시나리오
• 회원과 팀이 있다.
• 회원은 하나의 팀에만 소속될 수 있다.
• 회원과 팀은 다대일 관계다.
1. 테이블 간의 연관 관계 예시

→ Member 테이블이 Team테이블의 PK를 FK로 가지도록 한다.
2. Java 객체에서 이러한 연관관계를 어떻게 표현할 수 있을까?
(1) (비추천) Memebr 객체에 Team의 PK를 변수로 넣는다.

- 가장 직관적인 방식으로, DB의 테이블 구조를 클래스로 그대로 표현한 것이다.
- 단점 :
- member 객체에서 team객체를 조회하려면 (jpa를 통해) teamId pk로 Team 객체를 조회해야 한다.
- 해당 teamId를 갖는 team객체를 찾기 위해 영속성 컨텍스트, DB를 조회하는 과정이 필요 => 오래 걸린다.
- 또 조회 로직을 따로 짜주어야한다.
(2) (추천) Member 객체가 Team 객체를 참조한다.

- 참조를 통해 member 객체에서 team객체 바로 볼 수 있음.
- 조회 과정을 거치지 않기 때문에 빠르고, 간편하다.