首页 > 编程语言 > 详细

springboot学习总结(十三)jpa事务

时间:2020-07-14 00:36:04      阅读:61      评论:0      收藏:0      [点我收藏+]

(一)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事务

原文:https://www.cnblogs.com/vincentren/p/13296585.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!