0

这些是我的课:

@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?

4

0 回答 0