我有一个用@Service
注释的类。我有一个方法应该更新两个不同的数据源(数据库和内容存储库)。我在服务类的方法中添加了@Transactional
。没有任何进一步的定制;两个存储库类(用@Repository
注释)是否在同一事务中运行是否正确?
我正在使用JBoss 7.1.1,我在Spring(3.2)配置中有这两行:
<tx:jta-transaction-manager/>
<tx:annotation-driven proxy-target-class="true"/>
或者这是在两个不同的交易中运行吗?我想只在服务层方法中没有抛出运行时异常时提交数据。它是从控制器方法(使用@Controller
注释的类)调用的。
我会尽快为那个帮我获得Jackrabbit和数据库连接以在同一个交易中运行的人提供500赏金。我正在使用JBoss 7.1.1,Spring 3.2,Jackrabbit 2.6.2 JCA。
答案 0 :(得分:0)
如果没有任何进一步的自定义,两个存储库类将在不同的事务中运行。
您要找的是Distributed Transaction,有关于here和here的StackOverflow答案。如果您没有在Java EE服务器上运行,那么这里有一个article,它描述了为像Tomcat这样的普通servlet容器设置分布式事务。