@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 조인으로 데이터를 읽는다
- 장점
- 테이블 정규화
- 외래 키 참조 무결성 제약조건 활용 가능
- 저장공간 효율화
- 객체의 상속과 비슷한 형태