我正在使用Spring 4.0,带有JPA 2.0的EclipseLink 2.6.3和启用了JTA的IBM Websphere 8.5.5.8(Oracle 11g)。
截至目前,我的应用程序配置了 WebSphereUowTransactionManager ,因为我的服务器/容器是Websphere,如下所示。
<bean id="transactionManager" class="org.springframework.transaction.jta.WebSphereUowTransactionManager"></bean>
当我在 8.9.1中从春季文档中引用此link时。使用错误的事务管理器来表示
的特定DataSource 部分如果您正在使用全局事务,则必须使用Spring 所有你的org.springframework.transaction.jta.JtaTransactionManager 适用于所有交易操作。否则Spring会尝试 在容器等资源上执行本地事务 数据源。
这是什么意思?我应该转移到 org.springframework.transaction.jta.JtaTransactionManager ,因为我在我的服务和DAO中使用Spring @Transactional属性?请指教。
更新
正如@JBNizet所提到的,它是由不同供应商特定的事务管理器扩展的超类。在这种情况下,何时应该使用 org.springframework.orm.jpa.JpaTransactionManager ?它与其他人有什么不同?