JAVA中开启了事务,但是出现异常SQL并没有回滚

参考:https://blog.csdn.net/liuhaiquan123521/article/details/84636197

          https://blog.csdn.net/shengqianfeng/article/details/78444359

Spring的@Transactional注解默认只捕捉未被try-catchRuntimeException

第一:Spring只对 RuntimeException和Erro进行了捕获

第二:你的异常在try-catch中直接处理掉了 Spring是无法捕获到的

解决办法就是:@Transactional(rollbackFor = Exception.class),且在方法中throws Exception

当然以上说的情况都是建立在你的数据库支持事物操作的前提下,如果你用Mysql的MYISAM引擎那神仙也没办法。。。只能换数据库引擎了:(

猜你喜欢

转载自blog.csdn.net/qq_24497925/article/details/86636261