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 に保存され、2 番目の要素が table_B に自動的に保存されることを願っていますが、そうではありません。