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