这些是我的课:
@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?