자바 ORM 표준 JPA 프로그래밍 - 기본편-6

존스노우·2022년 1월 4일
0

JPA

목록 보기
6/10

고급 매핑 (상속 관계 매핑)

상속 관계 매핑

객체는 상속 관계가 있지만

관계형 데이터베이스는 상속관계가 없다.

슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사

상속관계 매핑 -> 객체의 상속과 구조와 DB의 슈퍼타입 서브 타입 관계를 매핑

논리 모델과 물리 모델로 나뉘는 테이블

슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 표현하는 법

조인 전략

총 두번의 인서트 조회 할때도 조인.
DTYPE 으로 구분.

기본 상속 만했을 때

부모테이블에 옵션을 넣어주면

이런식으로 ..

DTYPE 넣어주기 .

이런식으로 자식들한테도 넣어주자

결론

생각보다 단점은 아니다.
단일테이블보다 단점이긴함..

보통 기본으로 이방법을 많이 씀

단일 테이블 전략

단일 테이블 옵션 .
DTYPE 필수 단일 테이블일때 구분을 해야되서!

등록 조회 깔끔하게 됨.. 성능도 좋다.

정말 단순할땐 이 방법도 괜찮다.

구현 클래스마다 테이블 전략

추상 클래스로 만들어야 됨!

여기서는 디스크리미네이터컬럼 옵션 필요없음

그러나

부모클래로 조회시 자식 컬럼을 다 조회해버린다..

쓰면 안돼는 전략

MappedSuperclass

단순하게 객체의 입장에서 id/name 필드가 계속 나오는 것

공통된 객체를 따로 모아서 상속해주는 클래스

jpa extens 있을때 entity(상속) / MappedSuperclass 두가지중 하나여야됨

실제 예제 4 - 상속 매핑

book movie album 에 각각 상속

JOINED 로 각각 테이블에 넣을 수 있다.

profile
어제의 나보다 한걸음 더

0개의 댓글