我正在查看EclipseLink页面上的DiscriminatorColumn示例。
有两个实体
@Entity
@Table(name="PROJECT")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="TYPE", discriminatorType=DiscriminatorType.STRING,length=20)
@DiscriminatorValue("P")
public class Project {
@Id
protected BigInteger id;
protected String description;
}
@Entity
@DiscriminatorValue("L")
public class LargeProject extends Project {
protected BigInteger budget;
}
现在假设我的数据库中有两条记录
| ID | TYPE | DESCRIPTION | BUDGET |
|-----------|---------------|---------|
| 1 | P | Small Project | |
| 2 | L | Large Project | 10000 |
是否可以以某种方式删除TYPE
表,并使用BUDGET
表代替?
对于这种情况,如果Project
为BUDGET
则为null
,否则为LargeProject
JPA或EclipseLink是否允许这样做,如果没有,是否有任何理由?