@Transactional使用方法
@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使用方法相关推荐
- 3 种场景 @Transactional 失效的解决方法
以下文章来源方志朋的博客,回复"666"获面试宝典 来源 | blog.csdn.net/qq_20597727/article/details/84900994 Transact ...
- service层的方法上使用@Transactional注解,程序发生异常没有回滚
场景:程序在运行过程中发生了异常,虽然使用了@Transactional对方法进行注解,但是事务并没有回滚. 解决方案:经检查发现,在service层的方法中使用了try...catch关键字,导致发 ...
- @Transactional注解最容易忽视的三个失效场景!
@Transactional注解在以下场景中使用,是会失效的,切记! 1.非public方法 spring对注解事务的方法进行校验,修饰符是不是public,不是 public则不会获取@Transa ...
- 一口气说出 6 种 @Transactional 注解的失效场景
一.事务 事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种. 编程式事务:是指在代码中手动的管理事务的提交.回滚等操作,代码侵入性比较强, ...
- @Transactional注解在什么情况下失效?
引言 1.@Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功.要么同时失败. 2.使用@Transactional注解时需要注意许 ...
- @Transactional事务几点注意
这里面有几点需要大家留意: A. 一个功能是否要事务,必须纳入设计.编码考虑.不能仅仅完成了基本功能就ok. B. 如果加了事务,必须做好开发环境测试(测试环境也尽量触发异常.测试回滚),确保事务生效 ...
- @getmapping注解的作用_一口气说出6种,@Transactional注解的失效场景
作者:程序员内点事 引言 昨天公众号粉丝咨询了一个问题,说自己之前面试被问@Transactional注解哪些场景下会失效,一时语塞致使面试失败.所以今天简单的和大家分享一下@Transactiona ...
- @Transactional事务的使用和注意事项及其属性
事务管理 提示 @Transactional注解只能应用到public可见度的方法上,可以被应用于接口定义和接口方法,方法会覆盖类上面声明的事务. 示例: 例如用户新增需要插入用户表.用户与岗位关联表 ...
- 面试官让我说出2种@Transactional注解的失效场景,我一口气给他说了六种
引言 @Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功.要么同时失败.使用**@Transactional注解时需要注意许多的细 ...
最新文章
- linux计划任务作业
- c语言搜索关键字吗,c语言-以关键字搜索程序
- java httpclient 302_httpclient如何处理302重定向
- rmi of spring
- 状态很差时,就不要再继续做了。因为是徒劳,再就是过段时间或第二天再看,会豁然开朗,原来存在的疑难问题都迎刃而解。平时没事的时候要不断地给自己充电,让自己了解多方面知识。...
- Dubbo源码分析系列之-整体架构设计
- MySQl数据库常用的DOS命令
- 【读书笔记】 多线程程序常见bug
- 果真A站完了是B站,B站后台工程源码疑似泄露,已被GitHub删除!
- iOS自动化测试驱动工具探索
- 2021软件测试、自动化测试、面试题整理
- OpenCV滤波器 龙门石窟篇【Python-Open_CV系列(九)】(均值滤波器、中值滤波器、高斯滤波器、双边滤波器)
- navicat如何创建视图
- 华表Cell应用 - 使用XML自动读入数据 | #报表 #华表Cell
- Axure 初学者如何做 App 产品原型?
- Unity + Rider + EmmyLua使用中遇到的问题
- JS判断数组是否包含某个元素
- 局域网助手(LanHelper) 1.96 注册码
- 新版openwrt配置vlan 拨号-局域网-iptv
- C语言基础课第五次作业