spring,同一个类中有a,b两个方法a加了事务,b没加事务,a调用本类b方法,b方法中报错了a会回滚吗
时间: 2023-08-28 12:49:45 浏览: 251
Spring事务管理A方法内部调用B方法的回滚问题测试代码
在Spring框架中,同一个类中有a,b两个方法a加了事务,b没加事务,a调用本类b方法,b方法中报错了a会回滚。
如果a方法使用了Spring的事务管理,而b方法没有使用事务管理,则在a方法中调用b方法时,Spring会将b方法的执行视为一个新的事务。如果b方法中出现异常,则只会回滚b方法中对数据库的操作,而不会回滚a方法中的操作。因此,a方法中的事务将会提交。
如果希望在a方法中调用b方法时,将b方法的执行视为a方法的一部分,则可以使用AspectJ来实现。具体来说,可以在a方法上添加@Transaction注解,并设置propagation属性为REQUIRED,表示将b方法的执行视为a方法的一部分,这样b方法中出现异常时,整个事务都会回滚。
阅读全文