PROPAGATION_REQUIRED :如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。
代码:
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setName("SomeTxName");
// 设置事务传播方式
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED );
// 启动一个事务1
TransactionStatus ts1 = txManager.getTransaction(def);
// 启动一个事务2
TransactionStatus ts2 = txManager.getTransaction(def);
// 这里省略数据库更新操作
// ...
// 提交一个事务2
txManager.commit(ts2);
// 如果下面这个事务不提交,那么即使事务2成功提交,结果也是没有真正的把事务提交到数据库
// txManager.commit(ts1);
当然,一般情况下如果是声明式的事务,那么事务管理完全是spring管理的,理论上不会出现上面的情况,spring会判断是否需要在启动一个事务,但是如果是我们自己控制,特别是在某些场合(比方说更新多少件之后要提交一下),则要特别注意,最好是先判断该事务是否已经完成,如果还没完成,就不需要启动事务。
分享到:
相关推荐
Spring事务原理和配置 Spring事务原理是指Spring框架中的一种机制,用于管理事务,并提供了多种配置方式。事务是指一系列的操作,作为一个整体执行,如果其中某个操作失败,整个事务将回滚。Spring事务原理围绕着两...
1. **PROPAGATION_REQUIRED**:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。 2. **PROPAGATION_SUPPORTS**:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务方式执行。 ...
在Spring框架中,事务管理是核心特性之一,它允许开发者以声明式或编程式的方式处理事务。本示例“spring 事务传播 demo”将聚焦于Spring的事务传播行为,这是在多个方法调用中控制事务边界的关键概念。下面我们将...
本篇将基于"Spring事务传播Demo"来深入探讨Spring事务管理和传播行为。 首先,我们需要理解什么是事务。在数据库操作中,事务是一组操作,这些操作要么全部执行,要么全部不执行,以确保数据的一致性和完整性。在...
在Spring框架中,事务管理器是核心组件之一,它负责管理事务的生命周期,包括事务的开始、提交、回滚等操作。 首先,我们需要定义一个事务管理器bean,这个bean将负责管理事务的生命周期。在Spring_Hibernate框架中...
例如,PROPAGATION_REQUIRED 表示如果当前存在事务,则加入到当前事务;如果没有,则创建一个新的事务。 此外,Spring 事务管理还涉及到事务隔离级别(如 READ_UNCOMMITTED、READ_COMMITTED、REPEATABLE_READ、...
通过代码解析spring传播特性,包括 1、Propagation.REQUIRED 方法被调用时自动开启事务,在事务范围内使用... 如果没有活动事务, 则按TransactionDefinition.PROPAGATION_REQUIRED 属性执行。需要JDBC3.0以上支持。
TransactionDefinition接口是Spring事务管理的核心接口之一,它提供了定义事务特性的方法,包括事务的隔离级别、超时时间、读写模式以及我们关注的事务传播属性。事务传播属性定义了当一个事务方法被另一个事务方法...
* PROPAGATION_REQUIRED:如果存在事务,则加入该事务,否则创建一个新的事务 * PROPAGATION_REQUIRES_NEW:总是创建一个新的事务 * PROPAGATION_SUPPORTS:如果存在事务,则加入该事务,否则不加入事务 * ...
在深入探讨Spring框架中的事务传播属性之前,我们先来简要回顾一下Spring事务的基础概念。Spring框架提供了强大的事务管理功能,允许开发者通过声明式的方式管理业务逻辑中的事务边界。Spring的事务管理主要依赖于`...
Spring事务Propagation及其实现原理详解 在Spring框架中,事务Propagation(事务传播)是一种机制,用于控制事务的行为和传播方式。事务Propagation是Spring的事务管理机制中的一部分,用于定义事务的执行和传播...
本资料主要探讨了Spring事务的传播原理以及数据库事务的操作原理,这对于理解和使用Spring框架进行事务处理至关重要。 首先,让我们深入理解Spring事务的传播行为。在Spring中,事务的传播行为是指在一个事务方法被...
这意味着,当你在一个已有的事务中调用一个PROPAGATION_REQUIRED的方法,这个方法将会成为当前事务的一部分,共享相同的事务上下文。 2. **PROPAGATION_SUPPORTS**:如果当前存在事务,那么就支持它,即在事务内部...
Spring声明式事务管理是Spring框架的核心特性之一,它允许开发者在不侵入业务代码的情况下,对应用程序的事务进行管理。这种方式极大地提高了代码的可维护性和灵活性。以下是对Spring声明式事务配置的详细说明: 1....
#### 一、Spring事务的传播特性(Propagation) 在Spring框架中,事务管理不仅提供了ACID属性的支持,还引入了事务的传播特性,这些特性决定了当一个方法调用另一个方法时,事务如何进行交互。Spring提供了七种事务...
【Spring事务传播行为详解】 在Spring框架中,事务管理是其核心特性之一,它使得开发者能够在应用程序中实现数据库操作的事务一致性。事务传播行为是指在一个事务方法被另一个事务方法调用时,如何处理这两个方法...
本文将深入探讨Spring事务的传播行为,帮助读者理解如何在不同情况下正确配置和使用事务。 首先,让我们定义一下术语“事务传播”:在多层服务架构中,当一个事务方法被另一个事务方法调用时,事务的传播行为决定了...
Spring 框架的事务管理是其核心特性之一,它为开发者提供了强大的支持,确保了在多线程和并发环境中数据的一致性和完整性。本教程将深入探讨 Spring 的编程式事务管理和声明式事务管理,帮助你理解这两种方式的差异...
在深入探讨Spring事务管理配置之前,我们先简要回顾一下Spring框架的核心概念。Spring是一个开源的Java平台,它提供了一套全面的编程和配置模型,旨在简化企业级应用的开发。其中,事务管理是Spring框架中的一个重要...