我有 B 从 A 扩展,并将 InheritanceType 设置为 JOINED,代码如下:
@Entity
@Table(name = "parent")
public class Parent implements IsSerializable
{
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
List<A> children;
...
}
@Entity
@Inheritance(strategy= InheritanceType.JOINED)
public class A implements IsSerializable
{
@Id
@GeneratedValue
@Column(name = "id")
Long id;
}
@PrimaryKeyJoinColumn(name="id")
public class B extends A
{
String name;
}
然后将 A 推入列表
A a=new A();
list.getChildern().add(a);
将 B 推入列表
B b=new B();
list.getChildern().add(b);
然后
Parent p=new Parent();
p.setChildren(list);
hibernate.persist(entity);
希望列表的第一个元素将保存到 table_A,第二个元素将自动保存到 table_B。但他们没有。我做错了什么?