关于springboot里面的事务回滚的简单记录

最近自己在写一个小的项目,写的时候才发现自己会的东西太少了,总是遇到各种各样的坑。

今天主要记录一下自己在写数据库存储的时候想到要是出现错误,是不是要回滚数据库的操作呀!
然后就百度并实践了一下,得出下面的结论:

第一、需要在service方法上添加注解:

@Transactional(rollbackFor = Exception.class)

第二、如果你没有用try catch去捕获异常的话,那么只需要加上这个注解就可以了,如果你捕获异常了但catch里面只是打印或者返回了异常信息,没有手动抛出RuntimeException异常。那么这个时候你就需要在catch里面添加一个手动回滚的机制了。

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

这样就OK了,当然也可以通过AOP去批量实现这种效果,只是暂时我还没有研究明白,所以就先记录这个最简单的了。后期补上。。。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理