springboot学习总结(十三)jpa事务
Posted vincentren
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot学习总结(十三)jpa事务相关的知识,希望对你有一定的参考价值。
(一)java异常
Throwable这个Java类被用来表示任何可以作为异常被抛出来的类。Throwable对象可分为两种类型(指从Throwable继承而得到的类型):Error用来表示编译时和系统错误(除特殊情况外,一般不用关心);Exception是可以被抛出的基本类型。所以Java程序员关心的基类型通常是Exception。
Exception中有一个特例:RuntimeException。属于RuntimeException的类型很多,他们会自动被Java虚拟机抛出,所以不必在异常说明中把它们列出来(例:NullPointerException),因为RuntimeException异常不需要在异常说明中申明方法将抛出RuntimeException类型的异常,他们也被称为“unchecked exceptions”,看下面的demo就看懂了
/** * RuntimeException不需要在方法上申明 */ public void uncheckedException(){ throw new RuntimeException(); } /** * 非RuntimeException需要在方法上申明或者在方法体上用try..catch包起来 * @throws Exception */ public void checkedExceptions() throws Exception { throw new Exception(); }
图片找的网上的(地址:https://www.pianshen.com/article/93521095041/)
(二)springboot的事务
1、什么都不加
看下面的代码
@Override @Transactional public void saveAuthorNotRollRack(Author author) throws Exception { //不会回滚 authorDao.save(author); throw new Exception("author error"); } @Override @Transactional public void saveAuthorRuntimeRollRack(Author author){ //会回滚 authorDao.save(author); throw new NullPointerException(); }
如果@Transactional没有加回滚的条件(rollbackFor),那么只有抛出RuntimeException或者Error时才会回滚,其他异常不会回滚。
2、指定异常回滚
3、指定异常不回滚
以上是关于springboot学习总结(十三)jpa事务的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot JPA实现增删改查分页排序事务操作等功能