• 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。

  • 相关阅读:
    xml
    反射
    类加载器
    tcp通信
    UDP通信
    UDP与TCP协议
    网络通信协议
    符合汽车安全和质量标准的CYPRESS FRAM
    SRAM是什么存储器
    网络通信与便携式应用驱动SRAM技术发展
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/9728819.html
Copyright © 2020-2023  润新知