service层事务A调用事务B
事务B使用传播特性Require_new
使用新的事务,视屏中讲解两个相互无关系,但是事务A方法是调用事务B的呀 大的事务依然会回滚。
@Override
@Transactional
public String test() {
//测试修改用户状态
userMapper.updState();
//测试修改管理员状态 使用 @Transactional(propagation= Propagation.REQUIRES_NEW)
adminService.updState();
System.out.println("执行了");
return "1";
}
@Override
@Transactional(propagation= Propagation.REQUIRES_NEW)
public void updState() {
adminMapper.updState();
int i = 10/0;//故意报错
}
前台报错 事务AB都回滚了
和视频中所示稍微有点区别
很简单,把你大的事务掉用的地方加个try就可以了,被捕获的异常不会触发回滚,你试一下,我记得应该是这样的