我有一个对象的字段可以是多个对象类型。这个对象被编码在一个单独的表中,该字段的子类型带有一个鉴别器列。每个这些子类型都将其字段映射到父对象表中的列。我似乎无法在休眠模型中进行建模。无论表中有哪些子类型数据,下面的代码将返回空值getSubfield()
。Hibernate嵌入式继承
架构
id type whosit whatsit +----+------+--------+---------+ | 1 | "A" | "test" | null | | 2 | "B" | null | "test" | +----+------+--------+---------+
域对象
@Entity
public class Parent {
protected @Id @GeneratedValue int id;
protected Subfield subfield;
public Subfield getSubfield() {return subfield;}
}
@Embeddable
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="type", discriminatorType=DiscriminatorType.STRING)
public abstract class Subfield {}
@DiscriminatorValue("A")
public class TypeA extends Subfield {
public String whosit;
}
@DiscriminatorValue("B")
public class TypeB extends Subfield {
public String whatsit;
}
“的选择P从父P”
{id=1,subfield=null}
{id=2,subfield=null}
是否possib或者是否需要获得更多的创造性(这是一个传统数据库,更改架构并不是首选)
一位同事在工作中指向我http://opensource.atlassian.com/projects/hibernate/browse/HHH-1910。我想这是不支持= \ – 2009-05-28 16:59:48