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

  • 相关阅读:
    基于BIM与点云数据的塔吊仿真系统记录
    ModuleNotFoundError: No module named 'imgaug'
    ifc地形数据测试
    Command 'protoc' not found, but can be installed with
    运行错误
    java遍历目录下的目录和文件
    给输出框编号
    pytorch yolov5两块gpu训练日志
    matlab atan2
    执行的命令
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/9728819.html
Copyright © 2020-2023  润新知