상속관계 매핑
-RDB는 상속관계 X
-슈퍼타입 서브타입 관계라는 모델링 기법이 객체상속과 유사하므로 매핑
상속관계 매핑 전략
-조인 전략(정석)
-각각 테이블로 변환
-@Inheritance(strategy = InheritanceType.JOINED)
-@DiscriminatorColumn (DTYPE 식별자 자동추가)
-장점: 정규화, 외래키 참조 무결점 제약조건 활용(ITEM만 보면됨), 저장공간 효율화
-단점: 조인이 많이사용, 쿼리 많이 나감
-통합 테이블전략(싹 다 넣음): 단순할때 좋음
-기본값임(@Inheritance(strategy = InheritanceType.SINGLE_TABLE))
-DTYPE 필수(식별)
-장점: 조인필요없음(빠름), 쿼리가 단순함
-단점: 자식 엔티티가 매핑한 컬럼은 null을 허용해야함, 테이블 과도하게 커짐
-구현 클래스마다 테이블 전략(중복 데이터부분 그냥 다 갖게함): 안쓴다
-부모 클래스를 추상 클래스로 만듬(abstract)
-@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
-부모 클래스로 조회할경우 모든 테이블을 뒤져야 함(비효율)
@MappedSuperclass
-공통 매핑 정보가 필요할때 사용
-상속관계 매핑은 아니고 공통 속성을 쓰고 싶을때(등록일, 수정일, 등록자, 수정자 등등)
'웹 프로그래밍 > JPA' 카테고리의 다른 글
즉시로딩과 지연로딩 (0) | 2023.03.04 |
---|---|
프록시 (1) | 2023.03.04 |
연관관계 매핑 기초 (0) | 2023.03.03 |
엔티티 매핑 (0) | 2023.03.02 |
영속성 관리 (0) | 2023.02.28 |