我有一个在Spring 2.5.6下运行的Java Web应用程序,Hibernate 3.4(Hibernate作为JPA提供程序)和Tomcat 6.我使用一个数据库模式/持久性单元,但现在需要连接到2个模式/持久性单位。我是否可以在不迁移到JBoss或Glassfish等J2EE容器的情况下执行此操作?我是否需要使用JOTM和global / XA交易?
答案 0 :(得分:4)
如果您需要访问同一事务中的多个事务资源,则需要JTA,因此需要JTA事务管理器。在Spring级别,这意味着使用JtaTransactionManager
而不是JpaTransactionManager
。如果您不想迁移到真正的Java EE应用服务器,您确实可以使用独立的事务管理器,如JOTM或Atomikos。我更喜欢后者,但就个人而言,我会转向GlassFish。
答案 1 :(得分:2)
如果你使用带有spring / hibernate的Tomcat,那么使用JBoss的事务管理器来创建JTA事务管理器bean。
这是一个简短的教程http://ingenious-camel.blogspot.com/2012/01/how-to-use-jboss-transactions-in-spring.html