【问题标题】:Spring Transaction @Transactional annotation not workingSpring Transaction @Transactional 注释不起作用
【发布时间】:2019-12-07 16:34:16
【问题描述】:

@Transactional(rollbackFor = someException.class)
public void methodA() throws someException {
    try {
        methodB();
    } catch (someException e) {
        throw e;
    }
}


public void methodB() throws someException {
    try {

        someManager.save(object); // This object should only save when the whole transaction is committed

        callToSomeOtherServer(); // This call fails and throws exception

    } catch () {
        throw new someException();
    }
}


据我了解,在 methodB() 中,我们使用 someManager 保存 object 并调用另一个函数 callToSomeOtherServer()。所以这是上层方法中事务的一部分。如果 callToSomeOtherServer() 失败并抛出 someException,则应回滚整个事务,并且保存的对象不应反映在 DB 中。

但这对我不起作用,对象反映在 DB 中。有人可以帮助我理解为什么它不起作用吗?

【问题讨论】:

标签: java spring spring-transactions


【解决方案1】:

试试这个!
@Transactional(isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRED, readOnly = false, timeout = 100, rollbackFor = Exception.class)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    相关资源
    最近更新 更多