172.7. TransactionManager の設定
Camel 2.3 以降、JpaComponent は Registry から TransactionManager を自動的に検索します。Camel が登録された TransactionManager インスタンスが見つからない場合は、 TransactionTemplate も検索し、そこから TransactionManager を抽出してみてください。
レジストリーで使用された TransactionTemplate がない場合、JpaEndpoint は必要でない トランザクションManager の独自のインスタンスを自動作成します。
TransactionManager の複数のインスタンスが見つかった場合は、Camel が WARN をログに記録します。このような場合は、以下のように myTransactionManager トランザクションマネージャーを参照する JPA コンポーネントをインスタンス化し、明示的に設定したい場合があります。
<bean id="jpa" class="org.apache.camel.component.jpa.JpaComponent"> <property name="entityManagerFactory" ref="myEMFactory"/> <property name="transactionManager" ref="myTransactionManager"/> </bean>
<bean id="jpa" class="org.apache.camel.component.jpa.JpaComponent">
<property name="entityManagerFactory" ref="myEMFactory"/>
<property name="transactionManager" ref="myTransactionManager"/>
</bean>