goo*_*ead 6 spring transactions
我有两个问题。
如果我有一个方法:
@Transactional
public method1(){
method2()
}
public method2(){
dao.save()
}
Run Code Online (Sandbox Code Playgroud)
如果method2()出现异常,会不会有回滚?
另一个问题:
如果我有一个方法:
@Transactional
public method1(){
method2()
}
private void method2(){
dao.save()
}
Run Code Online (Sandbox Code Playgroud)
如果method2()出现异常,会不会有回滚?
是的,会有回滚。私有方法将在同一个事务中运行。您应该知道您不能拥有@Transactional私有方法。如果不引发任何错误,它将无法工作。这种行为在Spring Docs 中有解释:
由于 Spring 的 AOP 框架基于代理的特性,目标对象内的调用根据定义不会被拦截。对于 JDK 代理,只能拦截代理上的公共接口方法调用。
| 归档时间: |
|
| 查看次数: |
3892 次 |
| 最近记录: |