프로그래밍/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")

- 하위 테이블에 사용

 

 

- 구현 클래스마다 테이블 전략을 사용하지 말자.

- 기본적으로 조인전략 추천

반응형