我有mybatis 3.0.4和mybatis-spring集成1.0.1部署在Fuse(OSGi)中。我在SQLServer 2008中创建了一个基本数据库。在Spring中,我配置了一个TransactionAwareDataSourceProxy
数据源和一个DataSourceTransactionManager
事务管理器。交易没有回滚
现在我创建了自己的包,用于在Fuse中插入一些行到数据库中。我已经告诉捆绑使用配置的数据源和事务管理器。执行逻辑的方法如下所示:
@Transactional(propagation=Propagation.REQUIRED)
public void go(RecsCashContext context) throws ActionException {
当此方法引发异常时,我可以通过查看触发的预期行为来遵循Spring。这导致我弹簧JtaTransactionManager
和doRollBack(..)
。
所以一切都看起来很有希望,除了当我看着数据库,当然它处于不稳定的状态,因为以前的插入没有回滚。
我对此感到茫然,我很难在网上找到任何信息。有什么想法吗?
在这种情况下,我实际上是为了测试事务性强制运行时异常。正如我所提到的,我能够通过Spring源代码看到它声称回滚是有效的。 – AndyF
所有的持久性工作都是在go(...)方法中完成的,还是有一些插入是在另一种使用不同传播规则的方法中完成的? – Fil
所有在同一个......我的担心是,也许mybatis正在为它传播的每个插入创建新的事务 - 虽然我可以看到它为什么会这样做。 – AndyF