목차
JPA 연관 관계 - 고아 객체
JPA 연관 관계 - 즉시로딩과 지연로딩
JPA 연관 관계 - 프록시 객체
JPA 연관 관계 - @MappedSuperclass
JPA 연관 관계 - 상속 관계 Mapping
JPA 연관 관계 - 영속성 전이 Cascade
JPA 연관 관계 - 양방향 연관관계와 연관과계의 주인
JPA 연관 관계 - 양방향 연관관계
JPA 연관 관계 - 객체 지향 스럽게 모델링 하기
JPA 연관 관계 - 객체 관계 모델링하기
JPA 연관 관계
JPA 연관 관계
테이블과 객체 간 패러타임 차이로 인해 생기는 문제가 있다. 그 중 대표적인게 테이블 연관관계 를 객체로 풀어내는 것테이블간의 연관관계를 객체 연관관계로 풀어내기 위해서는 아래 3가지 조건을 잘 이해해야 한다.
방향
테이블 연관관계는 양방향
객체의 연관관계는 단방향으로만 존재한다.
객체의 양방향 관계는 단방향 관계 2개를 이용해 만들어준다.
다중성
One To One(일대일) 1:1
One To Many(일대다) 1:N
Many To One(다대일) N:1
Many To Many(다대다) N:M
연관관계의 주인
테이블 연관관계를 객체 양방향 연관관계로 만들기 위해서는 연관관계 주인 을 정해야 한다.
객체의 두 관계중 하나를 연관관계의 주인으로 지정해 주인만이 외래 키 를 관리하게 한다.
연관관계 주인은 외래키를 이용해 (등록, 수정) 등이 가능하지만 주인이 아닌 쪽은 읽기 만 가능하다
JoinColumn 어노테이션
외래키 를 매핑할 때 사용하는 어노테이션
속성
기능
기본 값
name
매필할 외래키 이름을 명시한다.
필드명 + _ + 참조하는 테이블 기본키 컬럼명
referencedColumnName
외래 키가 참조하는 대상 테이블 컬럼명
참조하는 테이블의 기본키 컬럼명
foreignKey
외래키 제약 조건을 직접 지정할 수 있다.
unique, nullable, insertable, updatable, columnDefinition, table
@Column 속성과 같다.