JpaTransactionManager的Javadoc对此有一些建议:
该事务管理器适用于使用单个JPA
EntityManagerFactory进行事务数据访问的应用程序。要访问同一事务中的多个事务资源,必须使用JTA(通常通过JtaTransactionManager)。请注意,您需要相应地配置JPA提供程序,以使其参与JTA事务。
换句话说,如果您发现自己拥有多个实体管理器和相应的TX管理器,则应该考虑使用一个实体管理器
JtaTransactionManager。实体经理应该能够参与JTA事务,这将使您在两个实体经理之间都具有完全的交易能力,而不必担心您一次在哪个实体经理中。
当然,
JtaTransactionManager确实需要完整的支持JTA的应用程序服务器,而不是像Tomcat这样的普通servlet引擎。



