事务是基于代理实现的,方法内部调用正常情况下是不走代理的,所以如果是子方法开启事务,正常情况下是不生效的
下面的代码,从Controller层去调用,最终还是会插入数据
@Service
public class CliServiceImpl extends ServiceImpl<CliMapper, Cli> implements CliService {
@Override
public ResultObj<Object> add() {
test();
return ResultObj.success();
}
@Transactional(rollbackFor = Exception.class)
public void test() {
Cli cli = new Cli();
cli.setName(UUID.fastUUID().toString());
this.save(cli);
if (true) {
throw new RuntimeException("xx");
}
}
}
大约 1 分钟