参考:https://blog.csdn.net/liuhaiquan123521/article/details/84636197
https://blog.csdn.net/shengqianfeng/article/details/78444359
Spring的@Transactional注解默认只捕捉未被try-catch的RuntimeException
第一:Spring只对 RuntimeException和Erro进行了捕获
第二:你的异常在try-catch中直接处理掉了 Spring是无法捕获到的
解决办法就是:@Transactional(rollbackFor = Exception.class),且在方法中throws Exception
当然以上说的情况都是建立在你的数据库支持事物操作的前提下,如果你用Mysql的MYISAM引擎那神仙也没办法。。。只能换数据库引擎了:(