@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保存对象,并调用另一个函数因此,这是高级方法中事务的一部分。如果callToSomeOtherServer()失败并抛出someException,,则应该回滚整个事务,保存的对象不应反映在DB中。
但这并不适用于我,对象反映在DB中。有人能帮我,让我明白为什么它不起作用吗?
发布于 2019-07-30 11:29:08
尝尝这个!
@Transactional(isolation = Isolation.READ_COMMITTED, propagation = Propagation.REQUIRED, readOnly = false, timeout = 100, rollbackFor = Exception.class)
https://stackoverflow.com/questions/57269029
复制相似问题