zhaojp0 2019-11-17
最近自己在写一个小的项目,写的时候才发现自己会的东西太少了,总是遇到各种各样的坑。
今天主要记录一下自己在写数据库存储的时候想到要是出现错误,是不是要回滚数据库的操作呀!
然后就百度并实践了一下,得出下面的结论:
第一、需要在service方法上添加注解:
@Transactional(rollbackFor = Exception.class)
第二、如果你没有用try catch去捕获异常的话,那么只需要加上这个注解就可以了,如果你捕获异常了但catch里面只是打印或者返回了异常信息,没有手动抛出RuntimeException异常。那么这个时候你就需要在catch里面添加一个手动回滚的机制了。
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
这样就OK了,当然也可以通过AOP去批量实现这种效果,只是暂时我还没有研究明白,所以就先记录这个最简单的了。后期补上。。。