我有两个方法都注释为@Transactional,并且都执行一些数据库操作,主要是插入。
我从方法A调用方法B
@Transactional
public void methodA(){
methodB();
// Some database Operations
// some error conditions....
throw exception;
}
@Transactional
public void methodB(){
// Some database Operations
}
所以我想仅在所有操作都成功时才提交 MethodA 和 MethodB 的数据库事务。 因此,即使方法A中遇到异常,方法B中所做的更改仍然会被提交。
如果方法A遇到错误,我希望方法B的更改回滚。
我还需要做点别的吗?
最佳答案
在 methodA()
中调用的所有方法都将是事务性的,如 @Transactional annotation has a propagation of required by default 。因此 methodB()
中的 @Transactional 并不是必需的。
关于java - Spring @Transactional 注解问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22001492/