-
[JPA] 상속관계 매핑프로그래밍/Java 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")
- 하위 테이블에 사용
- 구현 클래스마다 테이블 전략을 사용하지 말자.
- 기본적으로 조인전략 추천
반응형'프로그래밍 > Java' 카테고리의 다른 글
[클린 아키텍처 12] 아키텍처 스타일 결정하기 (2) 2024.10.11 [JPA] 연관관계(1:N) 매핑하기 (0) 2022.02.10 [JPA] 지연로딩 & 즉시로딩 (0) 2022.01.21 [JPA] 엔티티 데이터 접근 전략 @Access (feat. 필드접근 vs 프로퍼티 접근) (0) 2021.12.28 [JPA] 영속성 관리 (영속성 컨텍스트란?) (0) 2021.12.28