はちょうどem.merge(OBJ)、(OBJ)em.persistしないでください。マージは、添付オブジェクトとデタッチオブジェクトの両方で機能します。
デタッチされたオブジェクトから開始する場合は、オブジェクトをそれぞれのEntityManagersにマージします。オブジェクト間でIDキーを同じに保つのであれば、マージした最初のオブジェクトからキーを引き出し、それを将来使用します。
あなたが(私にはわからない)おそらく、1つのEMで管理されているオブジェクトを別のEMでマージしようとしていません。あなたはそれが動作するかどうかを確認するためにテストすることができます、私はちょうどあなたがしようとすると起こるか分からない。
So.
YourEntity unattachedEntity = ... // your original entity object.
YourEntity managedEntity = em1.merge(unattachedEntity);
// managedEntity now has the primary key assigned by the DB
unattacheEntity.setPrimaryKey(managedEntity.getPrimaryKey());
em2.merge(unattachedEntity);
em3.merge(unattachedEntity);
何かがうまくいくはずです。
ありがとうございました!それは本当にちょうど働いた!あなたの答えはとても役に立ちました!私は前にマージしようとしましたが、2つのエンティティを使用してあなたの魔法のトリックではありません。 – SAL9000