zoukankan      html  css  js  c++  java
  • spring boot 事务

    spring事务:默认自动提交
    只读:@Transactional(readOnly = true)
    读写:@Transactional(),因为等同于@Transactional(readOnly = true,isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED,timeout=-1)

    Isolation.DEFAULT:这是默认值,表示使用底层数据库的默认隔离级别。对大部分数据库而言,通常这值就是TransactionDefinition.ISOLATION_READ_COMMITTED
    Propagation.REQUIRED:这是默认值,如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
    timeout=-1:单位是秒,默认为-1.即为底层数据库事务系统的超时值,如果底层数据库事务系统没有设置超时值,那么就是none,没有超时限制。
    rollbackFor/rollbackForClassName:不写即默认时,只有在抛出的是unchecked异常时才回滚该事务,也就是抛出的异常为RuntimeException的子类(Errors也会导致事务回滚),而抛出checked异常则不会导致事务回滚。

    注意:
    @Transactional只能写在public方面上边。

    unchecked异常 :不需要使用try-catch。如:空指针异常。
    checked异常(重点) :也就是说必须try-catch或throws。因此,在某个方法上,如果有捕获的异常,必须要写rollbackForClassName。如果某些个异常时,不用回滚,则使用noRollbackForClassName。

  • 相关阅读:
    Mysql 第一天
    Jquery day02
    Jquery day01
    Spring day04笔记(SVN讲解和回顾昨天知识)
    Spring day03笔记
    Spring day02笔记
    Spring day01笔记
    python3--命名空间字典
    python3--__call__拦截调用
    python3--__radd__处理右侧加法
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/9728819.html
Copyright © 2011-2022 走看看