@Embedded在子类上包含超类的ID

时间:2013-07-14 00:47:09

标签: java hibernate

这些是我的课程:

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Test_A 
{
    @Id @GeneratedValue(strategy=GenerationType.AUTO)
    protected Integer aId;
    public  String bleh;
}

@Embeddable
public class Test_B extends Test_A 
{
    public String foo;
}

@Entity
public class Test_Main 
{
    @Id @GeneratedValue(strategy=GenerationType.AUTO)
    protected Integer mainId;

    public Test_B testB;

    public Test_Main ()
    {
        testB = new Test_B();
        testB.foo="bar";
        testB.bleh="duh";
    }
}

这会生成以下表格:

Table: Test_A
aId
bleh

Table: Test_Main
mainId
foo

创建一个新的Test_Main并将其持久化将按如下方式填充表:

Test_A: <blank>
Test_Main.mainId: 1
Test_Main.foo:    "bar"

由于Test_A的继承是JOINED,我希望在Test_A中看到一行,在Test_main中有一个外键,如下所示:

Test_A.aId:  1
Test_A.bleh: "duh"

Test_Main.mainId: 1
Test_Main.aID:    1
Test_Main.foo:    "bar"

Test_A的其他子类必须有自己的表,因此需要JOINED。有没有办法让我填充Test_A,并在不需要Test_B物理表的情况下将外键输入Test_Main?

0 个答案:

没有答案