エンティティに1対多の関係が必要です。エンティティAを永続させているときは、値を変更してエンティティBのエンティティを作成してAに関連付けます。Eclipselink:データベースへの再接続後、エンティティPrePersist/PreUpdateへの変更が失われる
エンティティマネージャが開いている間はすべて正常に動作します。私がそれを閉じてそれを再び開くと、エンティティAはエンティティBについて「忘れる」。エンティティBのエントリはまだ存在するが、それらの間のリンクは失われる。確認a.getBList()のサイズは、作成後の1である場合には
@PrePersist
@PreUpdate
void onCreate(EntityA a){
EntityB b = new EntityB();
persist b;
a.getBList().add(b);
}
:ここ
は擬似コードです。
エンティティマネージャを閉じてもう一度開くと、a.getBList()のサイズは0になりますが、EnitiyBはまだそこにあります。 BListのようなものは、実際のデータベースに永続化されることはありませんか?
アイデア?
注:これは非常に単純化された例です。実際のコードはhereです。