@Entity
@Table(name = "T_BASE")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "CATEGORY", discriminatorType = DiscriminatorType.STRING)
public class BaseDomain ...{
}
@Entity
@DiscriminatorValue("sub1")
public class SubDomain1 extends BaseDomain ...{
}
@Entity
@SecondaryTable(name = "T_SUB2")
@DiscriminatorValue("sub2")
public class SubDomain2 extends BaseDomain ...{
private String ext;
@Column(table = "T_SUB2", name = "EXT2")
public String getExt() ...{
return ext;
}
public void setExt(String ext) ...{
this.ext = ext;
}
}
本文探讨了 JPA 中使用 @Inheritance 注解的不同策略,特别是 SINGLE_TABLE 策略,以及如何通过 @DiscriminatorColumn 和 @DiscriminatorValue 进行子类区分。此外,还介绍了如何使用 @SecondaryTable 来扩展子类的属性。
768

被折叠的 条评论
为什么被折叠?



