2012-01-25 9 views
2

JPAでspringを使用しています。そして、私は別のエンティティ(1つのアプリケーションの異なるモジュール)を含む2つのEntityManagersを持っており、両方が同じデータソースを指しています。1つのトランザクションで同じデータソースを指す2つの異なるエンティティマネージャを使用できますか?

(1つのTransactionManagerを使用して)1つのトランザクションで両方を使用できますか? そのためにJTAを使用する必要はありますか?もしそうなら、tomcatの下でそれを使用する最良のオプションは何ですか?

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

答えて

3

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

これを行う必要がある場合は、エンティティマネージャのコンフィグをマージして、EntityManagerの1つしか持たないようにするか、(SpringのJtaTransactionManagerを介して)JTAトランザクションを使用する必要があります。

Tomcat(すぐに使用できるJTAサポートがない)を使用している場合、サードパーティのJTA実装を見つける必要があります。

+0

私は、実行時にエンティティマネージャをマージするという最初のオプションを選択しました。このようなもの:http://labs.bsb.com/2010/11/configuring-modular-jpa-applications-with-spring/ –

関連する問題