1つのトランザクションで同じデータソースを指す2つの異なるエンティティマネージャを使用できますか?

StackOverflow https://stackoverflow.com/questions/9005759

質問

JPAで春を使っています。そして、私は異なるエンティティ(1つのアプリケーションのさまざまなモジュール)を含む2つのEntityManagerを持っています、そしてどちらも同じデータソースを指す。

1つのトランザクションでそれらの両方を使用できます(シングルトランザクションマニュージアルを使用して)。 私はそのためにJTAを使わなければなりませんか?もしそうなら、Tomcatの下でそれを使用するための最良の選択肢は何ですか?

春にどのように設定するか?

役に立ちましたか?

解決

標準のJPAトランザクションとSpringのJpaTransactionManagerの両方が単一のEntityManagerにバインドされています。それらは複数のマネージャと話すことはできません。

これを行う必要がある場合は、Entity Managerの設定をマージする必要があるため、EntityManagerを1つだけ持つか、(SpringのJTatransactionManagerを介して)JTAトランザクションを使用します。

あなたがTomcat(箱どおりのJTAサポートがない)を使用している場合は、第三者のJTAの実装を見つける必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top