首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

@Transactional(propagation = NOT_SUPPORTED)的Spring批量集成测试插入测试记录不回滚

@Transactional(propagation = NOT_SUPPORTED)是Spring框架中的一个事务注解,用于控制事务的传播行为。在这个特定的场景中,使用该注解可以实现批量集成测试插入测试记录不回滚的效果。

具体解释如下:

  • @Transactional(propagation = NOT_SUPPORTED)注解表示当前方法不会开启事务,并且会挂起当前存在的事务。这意味着在该方法执行期间,不会对数据库进行任何的事务操作。
  • 批量集成测试是指在测试环境中模拟真实场景下的大量数据操作,以验证系统的性能和稳定性。在这种情况下,如果每次测试都回滚事务,会导致测试数据无法持久化到数据库中,无法进行后续的性能和稳定性测试。
  • 插入测试记录不回滚的需求是为了保留测试数据,以便后续的验证和分析。通过使用@Transactional(propagation = NOT_SUPPORTED)注解,可以避免测试数据的回滚,从而实现这个需求。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云数据库MySQL:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云数据库SQL Server:https://cloud.tencent.com/product/cdb_sqlserver
  • 腾讯云数据库MongoDB:https://cloud.tencent.com/product/cdb_mongodb
  • 腾讯云数据库Redis:https://cloud.tencent.com/product/cdb_redis
  • 腾讯云数据库Memcached:https://cloud.tencent.com/product/cdb_memcached

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和情况进行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

18个示例详解 Spring 事务传播机制

传播属性 Propagation 枚举 Spring 对事务传播机制在 Propagation 枚举中定义了7个分类: REQUIRED 默认 SUPPORTS 支持 MANDATORY 强制 REQUIRES_NEW...新建 NOT_SUPPORTED 不支持 NEVER 从不 NESTED 嵌套 事务传播机制,是 spring 规定。...调用方法不支持事务 调用方法是一个嵌套事务 7种传播机制详解 首先创建两个方法 A 和 B 实现数据插入插入数据A: public class AService { public void...因为都没使用事务,所以 a1 和 b1 都存到成功了,而之后抛出异常之后,b2是不会执行。所以 a1 和 b1 都插入数据,而 b2 没有插入数据。...,直接回 测试源码 传播属性源码 参考 带你读懂Spring 事务——事务传播机制

1.9K10

Spring 事务使用详解

7.此时数据库数据还是原来。 上述栗子中,在 add() 方法加上了事务注解 @Transactional ,当该方法抛出异常时候,数据库会进行回,数据插入失败。...类名数组 不需要回异常类名 空数组 {} 事务名称就是方法全限定名,无法设置 事务传播方式 接下来看下事务传播方式,事务传播方式在 Spring 事务中非常重要,需要理解清楚,否则有时候事务不回不知道问题出在哪里...执行 address 插入插入成功,又因为 address 抛出异常,所以 address 插入进行回,回数据库连接是 515809288,即执行 address 插入连接,并没有回 user...,进行回,回是连接 418958713,所以 user 和 address 操作都会被回,都插入失败。...可以看到,它们还是在同一个事务中运行,同一个连接中进行插入,回是同一个连接,所以都会插入失败,即使进行了异常捕获。

1.2K60
  • Spring事务】声明式事务 使用详解

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习路上摸爬滚打,记录学习过程~ 个人主页:.29.博客 学习社区:进去逛一逛~ 声明式事务 一、编程式事务...,编译时异常不回。...可以通过@Transactional中相关属性设置回策略 rollbackFor* :可让原本不回; noRollbascFor* :可让原本会回不回 rollbackFor属性:...隔离级别处理并发问题能力,及数据库对其支持程度; ⚪传播行为 使用: 通过@Transactionalpropagation属性设置事务传播行为 @Transactional(propagation...= Propagation.REQUIRED) @Transactional(propagation = Propagation.SUPPORTS) @Transactional(propagation

    31920

    Spring事务传播机制(最全示例)

    ,虽然抛出了异常,但是不会回,两条数据都应该插入成功,我们测试一下,和预期一致,没有问题。...,我们测试一下,innerTransaction()插入数据成功,outerTransaction()方法由于有异常,所以进行了回。...innerTransaction()传播类型是NOT_SUPPORTED,说明innerTransaction()以非事务执行,数据插入后,抛出异常,由于外层是有事务,所以外层事务回,我们测试一下...NESTED,会创建一个新事务,由于抛出了异常所以内层会回,外层没有事务,会插入数据成功,我们测试一下,和预期一致。...我们预测是:outerTransaction()插入成功,innerTransaction1()插入成功,innerTransaction2()回。我们测试一下,和我们预测是一致

    12610

    面试官:说说Spring事务传播行为

    前言 在开发中,相信大家都使用过Spring事务管理功能。那么,你是否有了解过,Spring事务传播行为呢? Spring中,有7种类型事务传播行为。...Spring中七种事务传播行为 事务传播行为,默认值为 Propagation.REQUIRED。...测试代码如下: UserService @Transactional(propagation = Propagation.SUPPORTS) public void insert() { UserEntity...但由于第10次循环会抛出异常,则inserBatch事务会回,既数据库中不会存在:“初次调用”记录测试代码: @Test public void insertBatchTest() {...以非事务方式运行,如果当前存在事务,暂停当前事务。这种方式与REQUIRES_NEW有所类似,但是NOT_SUPPORTED修饰方法其本身是没有事务。这里就不做代码演示了。

    15810

    工作 6 年,@Transactional 注解用一塌糊涂

    @Transactional 注解虽然用起来简单,但这货总是能在一些你意想不到情况下失效,防不胜防! 我把这些事务问题归结成了三类:不必要、不生效、不回,接下用一些demo演示下各自场景。...不过,现在非关系型数据库如 Redis、MongoDB 和 Elasticsearch 等中间件提供了更高性价比解决方案。 不回 9....用错传播属性 @Transactional注解有个关键参数propagation,它控制着事务传播行为,有时事务传播参数配置错误也会导致事务不回。...自己吞了异常 在整个 review 过程中我发现导致事务不回场景,多数是开发同学在业务代码中手动 try...catch 捕获了异常,然后又没抛出异常.......事务无法捕获异常 Spring 事务默认会回RuntimeException 及其子类,以及 Error 类型异常。

    18610

    深入理解 Spring 事务:入门、使用、原理

    查看数据库表,会看到 tablea 和 tableb 都插入了一条数据。 到这里,我们用于测试 Spring 事务 Demo 就准备完毕了!...但父方法需要注意子方法抛出异常,避免因子方法抛出异常,而导致父方法回。 为了验证 REQUIRES_NEW 事务传播类型特点,我们来做几个测试。...当子方法事务发送回时,父事务是否回取决于是否捕捉了异常。如果捕捉了异常,那么就不回,否则回。...而 REQUIRED 则是:父方法发生异常回时,子方法事务会回。而子方法事务发送回时,父事务是否回取决于是否捕捉了异常。 为了验证 NESTED 事务传播类型特点,我们来做几个测试。...当父方法事务回时,子方法事务也跟着回。当子方法事务发送回时,父事务是否回取决于是否捕捉了异常。如果捕捉了异常,那么就不回,否则回

    3.1K20

    面试官:说说Spring事务传播行为

    前言 在开发中,相信大家都使用过Spring事务管理功能。那么,你是否有了解过,Spring事务传播行为呢? Spring中,有7种类型事务传播行为。...Spring中七种事务传播行为 事务传播行为,默认值为 Propagation.REQUIRED。...测试代码如下: UserService @Transactional(propagation = Propagation.SUPPORTS) public void insert() { UserEntity...但由于第10次循环会抛出异常,则inserBatch事务会回,既数据库中不会存在:“初次调用”记录测试代码: @Test public void insertBatchTest() {...复制代码 以非事务方式运行,如果当前存在事务,暂停当前事务。这种方式与REQUIRES_NEW有所类似,但是NOT_SUPPORTED修饰方法其本身是没有事务。这里就不做代码演示了。

    91210

    一文搞懂什么是事务

    REPEATABLE_READ (可重复读) 该隔离级别表示一个事务在整个过程中可以多次重复执行某个查询,并且每次返回记录都相同。即使在多次查询之间有新增数据满足该查询,这些新增记录也会被忽略。...MYSQL MVCC Spring事务传播行为 先来介绍下Spring事务传播行为使用方法: @Transactional(propagation=Propagation.REQUIRED) public...noRollbackForClassName:指定发生哪些异常名不回事务,参数为类数组,同 noRollbackFor,只是使用类名称定义。...noRollbackFor:指定发生哪些异常不回事务,当方法中出异常,且异常类和该参数指定类相同时,不回而是将继续提交事务。...使用事务时需要注意点 1、遇到异常检测不回,原因:默认RuntimeException级别才回,如果是Eexception级别的异常需要手动添加 @Transactional(rollbackFor

    62030

    关于spring事务你需要知道知识点

    关于spring事务你需要知道知识点 一、介绍 大家都知道,在SpringBoot中,使用事务只需要添加@Transactional就可以添加事务,很是方便。 那么它到底是怎么工作呢?...但看到数据库中,没有自己执行插入数据,那证明了事务确实生效了。 那如果没有这个代理类,真的事务就不会生效吗?把测试代码改一下,不再依赖spring注入,我们自己来创建实例对象。...详见第三章 5)注解属性rollbackFor设置错误 rollbackFor:这个注解属性作用是可以指定能够触发事务回异常类型。 而在默认情况下,spring只会对非检查异常做回。...我们将外部方法事务称为父事务,内部方法创建事务为子事务 当子事务回时,不影响父事务 当父事务回时,子事务一起回 这里同样,我们来进行测试一下 package com.banmoon.test.service...结果是只有30行插入数据回。注意就是,内部方法异常要自己捕获,别被父事务发现了。如果发现了,大家就一起回吧。 执行insert1(),这是父事务中抛出异常。

    30820

    一个99%的人都说不清楚知识点——Spring 事务传播行为

    如果当前没有事务,则执行与 PROPAGATION_REQUIRED 类似的操作。 Spring 可以通过 @Transactional 注解 propagation 属性来设置不同传播行为策略。...,如果内部方法发生异常, * 只回内部方法执行过 SQL ,而不回当前方法事务 */ NESTED(TransactionDefinition.PROPAGATION_NESTED...以下测试均在外部方法开启事务情况下进行,因为在外部没有事务情况下,三者都会新建事务,效果一样。...这里关键点在于所有方法都处于同一个事务中,此时「小镜」插入方法发生异常,那么这个方法所在事务就会被 Spring 设置为 rollback 状态。...,外部方法发生异常,主事务回,子事务跟随主事务回transaction_nested_nestedException小水和小镜均未入库外部方法开启事务,内部方法开启各自子事务,「小镜」插入方法发生异常回自己子事务

    47320

    Spring入门后半部分----JDBCTemplate和事务控制

    —配置数据库模板 注意: ${}取出配置文件中值 ,#{}是Spring表达式语言 在主类中向数据库插入数据 批量插入方法 查询某条记录,封装为一个java对象,并返回 JavaBean对象属性名需要和数据库中字段名一致..., "大忽悠", 8000, "小朋友", 6000); System.out.println("影响行数"+row); } } ---- 批量插入方法 ApplicationContext...语句插入一条员工记录,并以Map形式传入参数值 具名参数: (具有名字参数,参数不是一个占位符了,而是以个变量名) 语法格式 --------------------> :参数名 需要使用spring...noRollbackForClassName---->参数值为String[] (全类名) ,那些异常事务可以不回 可以让原来默认回异常给它不回 @Transactional(noRollbackFor...rollbackForClassName---->参数值为String[] (全类名),哪些异常事务需要回 原本不回异常指定让其回,原本编译时异常不会回 @Transactional

    95550

    Spring声明式事务管理

    Spring默认情况下会对运行期例外(RunTimeException)进行事务回。这个例外是unchecked 如果遇到checked意外就不回。...如何改变默认规则: 1 让checked例外也回:在整个方法前加上 @Transactional(rollbackFor=Exception.class) 2 让unchecked例外不回: @...例如,要插入 清单 1 中 JDBC 代码示例交易订单,使用带有 JPA Spring Framework,就可以将 TradeData 对象映射到 TRADE 表,并用清单 3 中 JPA...问题在于您必须告诉 Spring Framework,您正在对事务管理应用注释。除非您进行充分单元测试,否则有时候很难发现这个陷阱。...如果没有对审计方法使用 REQUIRES_NEW 属性,审计记录就会连同尝试执行交易一起回。使用 REQUIRES_NEW 属性可以确保不管初始事务结果如何,审计数据都会被保存。

    95750

    带你吃透Spring事务7种传播行为 | Spring第45篇

    比如下面2个类,Service1中m1方法和Service2中m2方法上面都有@Transactional注解,说明这2个方法由spring来控制事务。...通过@Transactional注解中propagation属性来指定事务传播行为: Propagation propagation() default Propagation.REQUIRED;...外围方法开启事务,插入“张三”方法和外围方法一个事务,插入“李四”方法、插入“王五”方法分别在独立新建事务中,外围方法抛出异常只回和外围方法同一事务方法,故插入“张三”方法回。...插入“王五”方法抛出异常,首先插入 “王五”方法事务被回,异常继续抛出被外围方法感知,外围方法事务亦被回,故插入“张三”方法也被回。 3 “张三”插入,“李四”插入,“王五”未插入。...插入“王五”方法抛出异常,首先插入“王五”方法事务被回,异常被catch不会被外围方法感知,外围方法事务不回,故插入“张三”方法插入成功。

    1.3K41

    面试官:Spring事务传播行为有几种?

    Spring中使用事务 Spring事务支持两种方式,编程式事务和声明式事务,下面的例子使用声明式事务,即@Transactional注解方式 @Transactional注解应用到public方法...String[] 需要回异常类名 空数组{} noRollbackFor Class[] 不需要回异常 空数组{} noRollbackForClassName String[] 不需要回异常类名...空数组{} @Transactional其他属性都比较容易理解,详细分析一下事务传播行为 Spring事务传播行为 Spring事务传播行为在Propagation枚举类中定义了如下几种选择...Transactional注解来演示spring事务传播行为 REQUIRED 如果当前存在事务,则加入该事务。...try catch,user和location都没有插入 结论:REQUIRES_NEW是创建新事务运行,因此addUser和addLocation是2个独立事务 NOT_SUPPORTED 以非事务方式运行

    86010
    领券