0

ここに画像の説明を入力

画像に示すように、3 つのエンティティがあります。

この疑似コードに示すように、オブジェクトを永続化しようとしています

EA = new EA
EB = new EB
EC = new EC
EB.link(EA)
EC.link(EA)
persist(EB)
persist(EC)

エンティティ B を永続化すると、エンティティ A は永続化されますが、エンティティ C は次のエラーで永続化できません。

java.lang.IllegalStateException: org.hibernate.TransientObjectException: object is an unsaved transient instance - save the transient instance before merging: 

私はエンティティ C を制御しています。エンティティ A と B を変更したくありません。これらすべてのエンティティを永続化するにはどうすればよいですか?

4

2 に答える 2

1

私はこれがうまくいくと思います:

EA = new EA
EB = new EB
EC = new EC
EB.link(EA)
persist(EB)
EC.link(EB.getEA())
persist(EC)
于 2012-11-27T18:07:38.477 に答える
0

ここに画像の説明を入力

うまく機能させるには、モデルを変更する必要がありました。

擬似コードは

EA=new EA
EB=new EB
EC=new EC
EB.link(EA)
EB.link(EC)
persist(EB)
于 2012-11-29T20:43:06.720 に答える