프로그래밍/Java
[JPA] 상속관계 매핑
대인보우
2022. 2. 15. 13:16
반응형
상속관계 매핑
객체의 상속의 구조와 DB의 슈퍼타입 서브타입 관계를 매핑
전략
1. 조인 전략
각 테이블로 변환
각각 조인해서 사용
DTYPE으로 구분
2. 단일 테이블 전략
한 테이블로 합쳐서 사용
DTYPE으로 구분
3. 구현 클래스마다 테이블 전략
상위 테이블 없이 슈퍼타입 컬럼을 서브타입 애들이 다 갖고 있음
- extends 사용시 JPA 기본전략은 단일테이블 전략
- 상위 테이블을 추상 클래스로 만들 것
어노테이션 사용
@Inheritance
- strategy를 이용하여 전략 선택 가능
@Inheritance(strategy = InheritanceType.JOINED) // 조인전략
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) // 단일 테이블 전략
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) // 구현 클래스 전략
@DiscriminatorColumn(name = "DTYPE")
- 상위 테이블에 사용
@DiscriminatorValue("M")
- 하위 테이블에 사용
- 구현 클래스마다 테이블 전략을 사용하지 말자.
- 기본적으로 조인전략 추천
반응형