@OneToMany に関する多くのトピックとフォーラムを読みましたが、残念ながらどれも役に立ちませんでした。
たとえば、次のようなエンティティがあります。
@Entity
@Table(name = "MANAGER")
public class Manager{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "MAN_ID")
private long id;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "MAN_ID", updatable=true)
private Set<Workers> workers;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "MAN_ID", updatable=true)
private Set<Helpers> helpers;
...
}
@Entity
@Table(name = "WORKERS")
public class Workers{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private long id;
...
}
@Entity
@Table(name = "HELPERS")
public class Helpers{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private long id;
...
}
そして今、初めてManagerオブジェクトを保存しようとしています(両方のセットを空にしないでください)
Session session = getSession();
Transaction tx = session.beginTransaction();
session.save(holder);
tx.commit();
その見返りに、休止状態がどのように挿入を試みているかがわかりますが、ワーカーとヘルパーの更新はありません。Manager を DB から取得すると、両方のリストが空 (null) になります。ここで何が欠けていますか?