172.7. transactionManager の設定
Camel 2.3 以降、JpaComponent はレジストリーから TransactionManager を自動検索します。Camel が登録されている TransactionManager インスタンスを見つけられない場合、TransactionTemplate も検索し、そこから TransactionManager を抽出しようとします。
レジストリーで使用可能な TransactionTemplate がない場合、JpaEndpoint は TransactionManager の独自のインスタンスを自動的に作成しますが、これはほとんどの場合、必要なものではありません。
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>