Hibernate继承映射中的多个DiscriminatorColumn

时间:2011-12-02 20:02:10

标签: hibernate single-table-inheritance

我了解如何在Hibernate继承映射中使用DiscriminatorColumn, 但是,在我的场景中,我有更复杂的继承模块,我需要定义两个鉴别器。我想为整个继承树使用一个表。 基本上,父类是abastract,它代表一个人实体, 然后,我有两个不同的抽象实现,妻子&丈夫。所以基本上我已经需要一个鉴别器。然后对于每个人(妻子和丈夫),我有不同的信息需要保持,所以我不需要为每个人(妻子和丈夫)创建一个鉴别器。

我想出了这个实现,但是我被困住了,我怎么能从这里继续?

@Entity
@Table (name="sex")
@Inheritance (strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn (name="transaction_type", discriminatorType=DiscriminatorType.STRING)
public abstract class Person {
...
}

@Entity
@DiscriminatorValue("wife")
public class Wife extends Person {
...
}

现在,我如何在妻子班上设置一个鉴别员栏,就像我对父母一样?

1 个答案:

答案 0 :(得分:1)

你不需要第二个鉴别器。 Wife实体将正常运作 在2级继承情况下,中产阶级(在这种情况下是妻子和丈夫)并不是@DiscriminatorColumn。 相关问题Problem with 2 levels of inheritance可能会有所帮助 另一个问题Hibernate Inheritance Single_table