목차
개요
테이블은 외래 키로 조인
을 사용하여 연관된 테이블을 찾는다.
객체는 참조
를 사용하여 연관된 객체를 찾는다.
테이블과 객체 사이에는 이런 패러다임 불일치가 있다.
객체의 참조와 테이블의 외래 키를 매핑하여 해결해보자.
양방향 연관관계
설계를 하다 보면 양방향으로 서로 조회해야 하는 경우가 발생한다.
객체의 양방향 연관관계는
서로 다른 단방향 관계가 2개
인 것이다. (회원→팀, 팀←회원)
Team 객체의 필드에서는 List를 통해서 여러 명의 Member를 조회하고, Member객체의 필드에서는 참조를 통해서 하나의 Team을 조회한다.
양방향 매핑 규칙
객체의 두 관계 중 하나를 연관관계의 주인으로 지정해야 한다.
연관관계의 **주인만이 외래 키를 관리(등록, 수정)**한다.
연관관계의
주인이 아닌 쪽은 읽기(조회)만 가능
하다.
연관관계의 주인은 mappedBy 속성 사용 X
연관관계의
주인이 아니면 mappedBy 속성으로 주인을 지정
@OneToMany
일대다(1:N) 관계에서 사용
속성
기능
기본값
mappedBy
연관관계의 주인 필드를 선택한다.
fetch
글로벌 페치전략
@ManyToOne = fetchType.EAGER
@OneToMany = fetchType.LAZY
cascade
연속성 전이 기능
targetEntity
연관된 엔티티의 타입 정보를 설정한다.(이 기능은 거의 사용하지 않는다)