JPA

[JPA 14] 상속관계 구현 - 조인 전략

snowkit 2022. 3. 11. 04:22
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn
public abstract class Item {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private int price;
}
@Entity
public class Book extends Item {
    private String author;
    private String isbn;
}
@Entity
public class Shoes extends Item {
    private int size;
}
  • @Inheritance(strategy = InheritanceType.JOINED)
  • 슈퍼타입 테이블과 서브타입 테이블을 전부 생성한 뒤 PK 조인으로 데이터를 읽는다
  • 장점
    • 테이블 정규화
    • 외래 키 참조 무결성 제약조건 활용 가능
    • 저장공간 효율화
    • 객체의 상속과 비슷한 형태