1つのトランザクションで同じデータソースを指す2つの異なるエンティティマネージャを使用できますか?
-
14-11-2019 - |
質問
JPAで春を使っています。そして、私は異なるエンティティ(1つのアプリケーションのさまざまなモジュール)を含む2つのEntityManagerを持っています、そしてどちらも同じデータソースを指す。
1つのトランザクションでそれらの両方を使用できます(シングルトランザクションマニュージアルを使用して)。 私はそのためにJTAを使わなければなりませんか?もしそうなら、Tomcatの下でそれを使用するための最良の選択肢は何ですか?
春にどのように設定するか?
解決
標準のJPAトランザクションとSpringのJpaTransactionManager
の両方が単一のEntityManager
にバインドされています。それらは複数のマネージャと話すことはできません。
これを行う必要がある場合は、Entity Managerの設定をマージする必要があるため、EntityManager
を1つだけ持つか、(SpringのJTatransactionManagerを介して)JTAトランザクションを使用します。
あなたがTomcat(箱どおりのJTAサポートがない)を使用している場合は、第三者のJTAの実装を見つける必要があります。
所属していません StackOverflow