最近本身在写一个小的项目,写的时候才发现本身会的东西太少了,老是遇到各类各样的坑。
今天主要记录一下本身在写数据库存储的时候想到要是出现错误,是否是要回滚数据库的操做呀!
而后就百度并实践了一下,得出下面的结论:数据库
第1、须要在service方法上添加注解:code
@Transactional(rollbackFor = Exception.class)
第2、若是你没有用try catch去捕获异常的话,那么只须要加上这个注解就能够了,若是你捕获异常了但catch里面只是打印或者返回了异常信息,没有手动抛出RuntimeException异常。那么这个时候你就须要在catch里面添加一个手动回滚的机制了。io
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
这样就OK了,固然也能够经过AOP去批量实现这种效果,只是暂时我尚未研究明白,因此就先记录这个最简单的了。后期补上。。。class