회원과 팀이 다대일 관계에 있다고 가정
객체를 테이블에 맞추어 모델링(식별자로 다시 조회, 객체 지향적인 방법 X)
- 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다.
- 객체는 참조를 사용해서 연관된 객체를 찾는다.
단방향 연관관계
양방향 연관관계와 연관관계의 주인
양방향으로 연관관계를 설정하면 반대 방향으로 객체를 탐색해도 가능하다.
연관관계의 주인과 mappedBy
양방향 매핑 규칙
- 객체의 두 관계 중 하나를 연관관계의 주인으로 지정
- 연관관계의 주인만이 외래 키를 관리(등록, 수정)
- 주인이 아닌 쪽은 읽기만 가능
- 주인은 mappedBy 속성 사용 x
- 주인이 아니면 mappedBy 속성으로 주인 지정
- 외래 키가 있는 곳을 주인으로 지정
연관관계 주인이 아닌 곳에서 처리하면 값이 들어가지 않는다.
연관관계 주인 쪽에서 처리 할 때는 정상적으로 처리
양방향 매핑할 시 양쪽에 값을 세팅해주어야 한다.
- 순수 객체 상태를 고려해서 항상 양쪽에 값을 설정하자
- 연관관계 편의 메소드를 만들자
(1) Member 클래스에서 넣어주는 방법
어디에서 값을 넣어주는건 정해서 넣으면 됨(상황에 맞게 설정)
(2) Team 클래스에서 넣어주는 방법
정리
- 단방향 매핑만으로도 이미 연관관계는 매핑은 완료
- 양방향 매핑은 반대 방향으로 조회 기능이 추가
'JPA' 카테고리의 다른 글
[JPA] 지연 로딩과 즉시 로딩 (2) | 2021.01.09 |
---|---|
[JPA] 프록시란? (0) | 2020.12.23 |
상속관계 매핑 (0) | 2020.12.22 |
엔티티 매핑 (1) | 2020.12.21 |
영속성 관리 (1) | 2020.12.21 |