首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
一般rollbackfor使用
2024-11-03
@Transactional(rollbackFor=Exception.class)的使用
转载: java阿里巴巴规范提示:方法[edit]需要在Transactional注解指定rollbackFor或者在方法中显示的rollback. 先来看看异常的分类 error是一定会回滚的 这里Exception是异常,他又分为运行时异常RuntimeException和非运行时异常 可查的异常(checked exceptions):Exception下除了RuntimeException外的异常 不可查的异常(unchecked exceptions):RuntimeException
spring的@Transactional(rollbackFor=Exception.class)的使用
Spring框架的事务基础架构代码将默认地只在抛出运行时和unchecked exceptions时才标识事务回滚. 也就是说,当抛出个RuntimeException 或其子类例的实例时.(Errors 也一样 - 默认地 - 标识事务回滚.)从事务方法中抛出的Checked exceptions将不被标识进行事务回滚.1 让checked例外也回滚:在整个方法前加上 @Transactional(rollbackFor=Exception.class)2 让unchecked例外不回滚: @
注解@Transactional(rollbackFor = Exception.class) 的用法
由于业务需求要求,在一个Service的一个方法A中有一个for循环,每次循环里面的业务逻辑有可能发生异常,这个时候就需要将这个循环内的所有数据库操作给回滚掉,但是又不能影响到之前循环里数据的更改,并且后面的循环里不发生异常的情况下也需要正常操作数据库 for (int i = 0; i < educationInfoArrayList.size(); i++) { String empCode = educationInfoArrayList.get(i).getEmpCode(); //导入
Spring中的@Transactional(rollbackFor = Exception.class)属性详解
序言 今天我在写代码的时候,看到了.一个注解@Transactional(rollbackFor = Exception.class),今天就和大家分享一下,这个注解的用法: 异常 如下图所示,我们都知道Exception分为运行时异常RuntimeException和非运行时异常 error是一定会回滚的 如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止. 如果不想终止,则必须捕获所有的运行时异常,决不让这个处理线程退出.队列里面出现异常数据了,正常的处理应
Spring中@Transactional(rollbackFor = Exception.class)的作用
Spring中的@Transactional(rollbackFor = Exception.class)事务处理,当你的方法中抛出异常时,它会将 事务回滚,数据库中的数据将不会改变,也就是回到进入此方法前的状态.
@Transactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)这个注解只有在出异常时才会回滚,需要回滚时没有异常也要人为制造异常(自定义异常)所以,如果使用了异常捕获,很有可能异常没有被抛出,而是捕获消化了(人为把异常友好的处理了,这种情况不能回滚)总之,尽量不去捕获,让异常自己抛出来
Spring事务管理——回滚(rollback-for)控制
探讨Spring事务控制中,异常触发事务回滚原理.文章进行了6种情况下的Spring事务是否回滚. 以下代码都是基于Spring与Mybatis整合,使用Spring声明式事务配置事务方法. 1.不捕获异常(一般处理方式) 代码,其中contentMappger.updateWithErrTest(31L); 是SQL语句错误,用来测试回滚. /** * 删除多条记录 */ @Override public ShopResult deleteContentGroup(String[] ids)
@Transactional(rollbackFor=Exception.class)的作用
在项目中,@Transactional(rollbackFor=Exception.class),如果类加了这个注解,那么这个类里面的方 法抛出异常,就会回滚,数据库里面的数据也会回滚. 这种设置是因为Spring的默认回滚RuntimeException,如果想要回滚Exception时,要设置@Transactional(rollbackFor = Exception.class),而且Exception还要抛出.
@Transactional(rollbackFor)
@Transactional注解有两个,一个是spring提供的@org.springframework.transaction.annotation.Transactional 另一个是jdk提供@javax.transaction.Transactional.在回滚的设置上,spring提供的是rollbackFor,jdk提供的是rollbackOn,在使用方法上是一致的. 这两个注解在我有限的测试里表现是一样的. 用在哪里 @Transactional注解既可以写在方法上也可以写在类上.
一次Spring Transactional嵌套事务使用不同的rollbackFor的分析
起因: 项目期间由于一次异常回滚问题,发现自己在事务知识方面知识的遗漏,趁着这次机会,做了几次rollbackFor的测试. 测试: 现在有两个事务,事务oute包含事务Inner.事务A回滚规则是当事务抛出TestException,其中TestException继承RunTimeException.事务B的回滚规则是事务抛RuntimeException.事务的传播方式都是使用的默认,即 Propagation.REQUIRED.如以下代码: @Override @Transaction
SpringBoot @Transactional的rollbackFor属性
1.简单回顾Java Exception 该图摘自:https://blog.csdn.net/zhangerqing/article/details/8248186 一方面,我们可以将异常分为运行时异常(RuntimeException)和非运行时异常(Exception中除了RuntimeException及其子类以外的).另一方面,我们可以将异常分为受控异常(checked exceptions)和不受控异常(unchecked exceptions). 受控异常(checked exce
coding++:Spring中的@Transactional(rollbackFor = Exception.class)属性详解
异常: 如下图所示,我们都知道 Exception 分为 运行时异常 RuntimeException 和 非运行时异常. error 是一定会回滚的. 如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止. 如果不想终止,则必须捕获所有的运行时异常,决不让这个处理线程退出.队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志. 不应该由于异常数据而影响下面对正常数据的处理. 非运行时异常是 RuntimeException 以外的异常,类型上都属
为什么阿里规定需要在事务注解@Transactional中指定rollbackFor?
作者:Mint6 来源:http://39sd.cn/53D5D Java阿里巴巴规范提示:方法[edit]需要在Transactional注解指定rollbackFor或者在方法中显示的rollback. 异常的分类 先来看看异常的分类 error是一定会回滚的. 这里Exception是异常,他又分为运行时异常RuntimeException和非运行时异常 可查的异常(checked exceptions):Exception下除了RuntimeException外的异常 不可查的异常(un
@Transactional注解真的有必要声明rollbackFor属性吗?
@Transactional注解真的有必要声明rollbackFor属性吗? 今天在看spring的事务底层源码时,想到一个问题,@Transactional注解真的有必要声明rollbackFor属性吗?因为之前有许多资料,包括公司的java编码规范上也有提及到这一点. 不知道读者们有没想过这个问题,但我看完源码后,个人觉得是没必要的.见解不到位的话,希望读者能指明. 异常:如下图所示,我们都知道Exception分为运行时异常RuntimeException和非运行时异常(检查时异常
玩转spring boot——结合JPA事务
接着上篇 一.准备工作 修改pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&
MyBatis6:MyBatis集成Spring事物管理(下篇)
前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基础上稍微做一点点的进阶:多数据的事物处理.文章内容主要包含两方面: 1.单表多数据的事物处理 2.多库/多表多数据的事物处理 这两种都是企业级开发中常见的需求,有一定的类似,在处理的方法与技巧上又各有不同,在进入文章前,先做一些准备工作,因为后面会用到多表的插入事物管理,前面的文章建立了一个Student相关
记录一次bug解决过程:resultType和手动开启事务
一.总结 二.BUG描述:MyBatis中resultType使用 MyBatis中的resultType类似于入参:parameterType.先看IDCM项目中的实际使用案例代码,如下: // List<Integer> orderIds = assetBeanMapperExt.getOrderIdsByParentIds(SqlStringUtil.formatInStr(logisticsOrder.getParentIds())); 我们的目的是通过*Ext层直接返回一个list,
基于Spring+SpringMVC+Mybatis的Web系统搭建
系统搭建的配置大同小异,本文在前人的基础上做了些许的改动,重写数据库,增加依据权限的动态菜单的实现,也增加了后台返回json格式数据的配置,详细参见完整源码. 主要的后端架构:Spring+SpringMVC+Mybatis+Shiro+Maven IDE:IntelliJ IDEA 15.0.2 jdk:1.8.0_66 系统完整源码 https://github.com/Wellat/Factor 系统目录结构 跑起来效果 搭建步骤 1.用Idea创建maven项目 2.配置pom.xml
搭建SpringMVC+Spring+Hibernate平台
一. 开发环境 1. 点击此查看并下载需要的 Eclipse IDE for Java EE Developers 开发工具,推荐选用32位 2. 点击此查看并下载需要的 MySQL Server 数据库,推荐选用32位 3. 点击此找到并下载 Java SE Development Kit 6u45,推荐选用32位 4. 点击此找到并下载 apache-tomcat-6.0.48.zip,兼容32位和64位版本 二. 准备工作 1. 点击此找到并下载 spring-framework-
Spring + SpringMVC + Druid + JPA(Hibernate impl) 给你一个稳妥的后端解决方案
最近手头的工作不太繁重,自己试着倒腾了一套用开源框架组建的 JavaWeb 后端解决方案. 感觉还不错的样子,但实践和项目实战还是有很大的落差,这里只做抛砖引玉之用. 项目 git 地址:https://git.oschina.net/LanboEx/sdh.git 大体采用的开源项目有:Spring + SpringMVC + Druid + JPA(Hibernate Impl). 1. 采用到的开源项目漫谈 Spring 迷人的依赖注入特性, 使其已经稳稳的占据在 JavaEE 项目引用开
热门专题
elementui 对话框时清空表单数据
CSS中overflow可以解决浮动引发的问题默认属性值是
VS studio 项目属性管理器在哪
sql中when then
webshell和msf
pytorch优化器 多网络
jquery判断所在父级元素的索引
keepalived高可用原理
kafka topic 分区创建
百度地图 infowindow样式修改
登录harbor仓库报403 forbidden
c语言 openssl rsa加解密
ftk imager 无法启动驱动程序
rad server 与datasnap
LCD1602地址计数器AC是要输入指令才会自动加一吗
在数组的原型上添加一个方法mysort排序
android ImageButton 设置是否可用
unity manager和接口
securecrtportable连接虚拟机
php命令行不能执行