首页 > 解决方案 > 具有多个数据库操作的 Spring Transactional on 方法

问题描述

我有点困惑。我虽然@Transactional在方法上意味着所有操作或没有。

说我有这个方法:

@Transactional
public void fewDbOpeations(){
    calculation1();
    myDao.saveResult();
    calculation2();
    myDao.saveResult();
}

calculation2()抛出异常或我的第二次调用myDao.saveResult出错,我看到的是即使调用成功@Transactional后用保存结果注释的整个方法。calculation1()

那是我与数据库的第一次交互保存了我想要的记录,但第二次失败了,但我认为因为该方法@Transactinal甚至第一次调用保存到数据库也应该回滚。

我错过了什么吗?

标签: springtransactions

解决方案


@Transactional (rollbackFor = Exception.class)
    public void fewDbOpeations(){
    calculation1();
    myDao.saveResult();
    calculation2();
    myDao.saveResult();
}

Try using this as well and throw Exceptions.


推荐阅读