Infinispan 事务 - 无法从 Spring4 获取 TransactionManager

Infinispan transaction - can not get TransactionManager from Spring4

我需要将 Infinispan 配置为我的 Spring 项目的缓存提供程序。因为他的交易功能。问题是 Spring 使用 PlatformTransactionManager 而 Infinispan 需要 javax.transaction.TransactionManager。 是否可以使用 Spring 提供的 PlatformTransactionManager 配置 Infinispan TransactionManagerLookup?

我正在使用 JpaTransactionManager 作为 TransactionManager。 Infinispan 的版本是 7.2.3.Final, Spring4.

看起来 JpaTransactionManager 只能绑定一个目标,我需要 JtaTransactionManager。希望可以在 Spring 的 PlatformTransactionManager 下绑定它。

Infinispan TransactionManagerLookup returns a JTA TransactionManager implementation. However you are using a PlatformTransactionManager 与 JTA 无关。

所以至少有两种处理方法:

  • 您可以通过 TransactionManagerLookup 在 PlatformTransactionManager 和 JTA TransactionManager 之间开发和适配return。
  • 更好的方法是配置 Spring 以将 JTA 与您的实体一起使用(您可能会在 Internet 上找到许多示例,但这里的关键点是您将需要一些 JTA 实现,例如 Narayana 例如)。然后 Infinispan 应该会自动找到 JTA 事务管理器(或者您可以使用 TransactionManagerLookup 手动指定它)。