我有一個對象的字段可以是多個對象類型。這個對象被編碼在一個單獨的表中,該字段的子類型帶有一個鑑別器列。每個這些子類型都將其字段映射到父對象表中的列。我似乎無法在休眠模型中進行建模。無論表中有哪些子類型數據,下面的代碼將返回空值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