@Transactional使用教程

  • 一、基础介绍
    • 二、异常体系介绍
      • 三、使用节奏
        • 1.注意事项
        • 2.没有try catch的情况下
        • 3.有try catch的情况下
          • 1.没有返回值的情况
          • 2.存在返回值的情况

一、基础介绍

在 spring 项目中, @Transactional 注解默认会回滚RuntimeException以及其子类,其它范围之外的异常 Spring 不会进行事务回滚

如果也想要回滚,在方法或者类加上@Transactional(rollbackFor = Exception.class)

二、异常体系介绍

三、使用节奏

1.注意事项

添加此注解需要在public方法中进行

2.没有try catch的情况下

添加@Transactional如果存在异常会直接进行回滚

@Override
@Transactional
public CommonResponse addOrModify(Book book) {CommonResponse<Entity> response = null;try {response = baseMapper.insert(entity);int i = 1/0;} catch (Exception e) {e.printStackTrace();throw new RuntimeException();}return response ;
}

3.有try catch的情况下

分为两种情况

1.没有返回值的情况
@Override
@Transactional
public void addOrModify(EntityDto dto) {CommonResponse<Entity> response = null;try {baseMapper.insert(entity);baseMapper.insertToother(entity);}  response = CommonResponseFactory.getInstance().success("成功");} catch (Exception e) {throw new RuntimeException("save方法运行时异常");}
}
2.存在返回值的情况
@Override
@Transactional
public CommonResponse addOrModify(EntityDto dto) {CommonResponse<Entity> response = null;try {baseMapper.insert(entity);baseMapper.insertToother(entity);}  response = CommonResponseFactory.getInstance().success("成功");} catch (Exception e) {response = CommonResponseFactory.getInstance().error("失败");ExceptionProcessUtils.wrapperHandlerException(response, e);TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();}return response;
}

@Transactional使用方法相关推荐

  1. 3 种场景 @Transactional 失效的解决方法

    以下文章来源方志朋的博客,回复"666"获面试宝典 来源 | blog.csdn.net/qq_20597727/article/details/84900994 Transact ...

  2. service层的方法上使用@Transactional注解,程序发生异常没有回滚

    场景:程序在运行过程中发生了异常,虽然使用了@Transactional对方法进行注解,但是事务并没有回滚. 解决方案:经检查发现,在service层的方法中使用了try...catch关键字,导致发 ...

  3. @Transactional注解最容易忽视的三个失效场景!

    @Transactional注解在以下场景中使用,是会失效的,切记! 1.非public方法 spring对注解事务的方法进行校验,修饰符是不是public,不是 public则不会获取@Transa ...

  4. 一口气说出 6 种 @Transactional 注解的失效场景

    一.事务 事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种. 编程式事务:是指在代码中手动的管理事务的提交.回滚等操作,代码侵入性比较强, ...

  5. @Transactional注解在什么情况下失效?

    引言 1.@Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功.要么同时失败. 2.使用@Transactional注解时需要注意许 ...

  6. @Transactional事务几点注意

    这里面有几点需要大家留意: A. 一个功能是否要事务,必须纳入设计.编码考虑.不能仅仅完成了基本功能就ok. B. 如果加了事务,必须做好开发环境测试(测试环境也尽量触发异常.测试回滚),确保事务生效 ...

  7. @getmapping注解的作用_一口气说出6种,@Transactional注解的失效场景

    作者:程序员内点事 引言 昨天公众号粉丝咨询了一个问题,说自己之前面试被问@Transactional注解哪些场景下会失效,一时语塞致使面试失败.所以今天简单的和大家分享一下@Transactiona ...

  8. @Transactional事务的使用和注意事项及其属性

    事务管理 提示 @Transactional注解只能应用到public可见度的方法上,可以被应用于接口定义和接口方法,方法会覆盖类上面声明的事务. 示例: 例如用户新增需要插入用户表.用户与岗位关联表 ...

  9. 面试官让我说出2种@Transactional注解的失效场景,我一口气给他说了六种

    引言 @Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功.要么同时失败.使用**@Transactional注解时需要注意许多的细 ...

最新文章

  1. linux计划任务作业
  2. c语言搜索关键字吗,c语言-以关键字搜索程序
  3. java httpclient 302_httpclient如何处理302重定向
  4. rmi of spring
  5. 状态很差时,就不要再继续做了。因为是徒劳,再就是过段时间或第二天再看,会豁然开朗,原来存在的疑难问题都迎刃而解。平时没事的时候要不断地给自己充电,让自己了解多方面知识。...
  6. Dubbo源码分析系列之-整体架构设计
  7. MySQl数据库常用的DOS命令
  8. 【读书笔记】 多线程程序常见bug
  9. 果真A站完了是B站,B站后台工程源码疑似泄露,已被GitHub删除!
  10. iOS自动化测试驱动工具探索
  11. 2021软件测试、自动化测试、面试题整理
  12. OpenCV滤波器 龙门石窟篇【Python-Open_CV系列(九)】(均值滤波器、中值滤波器、高斯滤波器、双边滤波器)
  13. navicat如何创建视图
  14. 华表Cell应用 - 使用XML自动读入数据 | #报表 #华表Cell
  15. Axure 初学者如何做 App 产品原型?
  16. Unity + Rider + EmmyLua使用中遇到的问题
  17. JS判断数组是否包含某个元素
  18. 局域网助手(LanHelper) 1.96 注册码
  19. 新版openwrt配置vlan 拨号-局域网-iptv
  20. C语言基础课第五次作业

热门文章

  1. 钻四方孔,六方孔的机构原理及运动仿真
  2. 熬夜30天总结了今年最新springboot计算机毕业设计选题
  3. 奇异值分解(SVD)原理详解
  4. JavaScript日期加减
  5. 利用forestplot包绘制效应量亚组分析的类森林图
  6. JS 科学计数法,两大正整数相加
  7. Android手机做无线中继路由器
  8. PHP源码01 - php7编译安转、新特性
  9. ORACLE查看建表语句DDL
  10. javascript中使用RSA加密解密