@DiscriminatorColum
, @DiscriminatorValue(“XXX”)
@Inheritance(strategy = InheritanceType.JOINED)
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn //DTYPE > 엔티티 명이 들어감
public class Item{
@Id @GeneratedValue
private Long id;
private String name;
private int price;
...
}
@Entity
@DiscriminatorValue(“A”) //기본은 클래스 명과 같음
public class Album extends Item{
priave String artist;
}
장점
단점
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn
이 없어도 생성됨@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Item{
@Id @GeneratedValue
private Long id;
private String name;
private int price;
...
}
@Entity
@DiscriminatorValue(“A”) //기본은 클래스 명과 같음
public class Album extends Item{
priave String artist;
}
장점
단점
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Item{
@Id @GeneratedValue
private Long id;
private String name;
private int price;
...
}
@Entity
public class Album extends Item{
priave String artist;
}
장점
단점
@Entity
클래스는 엔티티나 @MappedSuperclass
로 지정한 클래스만 상속 가능@MappedSuperclass
public abstract class BaseEntity{
private String createdBy;
private LocalDateTime createdDate;
private String lastModifiedBy;
private LocalDateTime lastModifiedDate;
...
}
public class Member extends BaseEntity{
...
}