JPA

[JPA 13] 상속관계 구현

snowkit 2022. 3. 11. 04:16

DB와 객체의 상속

  • 관계형 데이터베이스는 상속 개념이 존재하지 않는다
  • 객체에는 상속 개념이 존재한다
  • 슈퍼-서브타입 모델로 객체의 상속관계를 구현할 수 있다

Entity Annotation

  • @Inheritance(strategy = InheritanceType.???)
    • JOINED: 조인 전략
    • SINGLE_TABLE: 싱글 테이블(통합 테이블) 전략
    • TABLE_PER_CLASS: 클래스 별 테이블(서브타입 테이블) 전략
  • @DiscriminatorColumn
    • 슈퍼타입의 식별자 컬럼
    • 기본값은 DTYPE이며 서브타입의 유형을 구분하는 용도로 사용
    • name 엘리먼트로 컬럼명 지정 가능
  • @DiscriminatorValue
    • 서브타입의 식별자 값
    • 슈퍼타입의 식별자 컬럼에 저장할 테이블 유형 값
    • value 엘리먼트로 값 지정 가능