1

JPA EntityManager API を使用して、あるデータベースから別のデータベースにデータを移動するアプリケーションを作成しています。私の質問は: 1. 1 つのトランザクションで複数のエンティティ マネージャーを使用できますか? 2. 1 つのデータベースからエンティティを読み取り、それを別のデータベースに永続化できますか? どのような問題が発生する可能性がありますか?

4

1 に答える 1

2

1 つのトランザクションで複数のエンティティ マネージャーを使用できますか?

はい、JTA を使用します。ただし、あなたのケースでグローバルトランザクションが必要かどうかはわかりません。エンティティを 1 つの DB から別の DB に本当に移動またはコピーしていますか? 後者の場合、2 つのトランザクションを連続して使用できます。

1 つのデータベースからエンティティを読み取り、それを別のデータベースに永続化できますか?

それらが同じ構造を持ち、競合する PK がないと仮定すると、最初のエンティティ マネージャーを使用してエンティティを読み取り、それをデタッチしてから、別のエンティティ マネージャーを使用してマージできるはずです。PK の競合が発生する可能性がある場合は、(単純なマージではなく) DIY アプローチを使用する必要があります。

于 2010-11-01T10:58:01.850 に答える