我可以将现有列用作DiscriminatorColumn吗?

时间:2014-07-29 16:18:10

标签: java jpa eclipselink

我正在查看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表代替? 对于这种情况,如果ProjectBUDGET则为null,否则为LargeProject

JPA或EclipseLink是否允许这样做,如果没有,是否有任何理由?

0 个答案:

没有答案