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