网上的解决方法都是复制来复制去的
导致有部分人因为某些问题还是无法解决这个问题
网上解决方法:
1.Exception改为RuntimeException
2.@Transactional(rollbackFor = Exception.class)
3.手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly() //我还是会报错,懒得深究
某些问题:
旧代码并没有throws RuntimeException
直接try catch一个throw new RuntimeException
而修改完的代码是添加了throws RuntimException
不用try catch,直接throw new RuntimeException
原因:
在spring机制中,在配置事务后,如果采用try catch 捕获异常后,因为异常已经被捕获,所以事务不会滚,从而产生许多脏数据。