事务传播行为种类
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,
它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:
表1事务传播行为类型
事务传播行为类型
|
说明
|
PROPAGATION_REQUIRED
|
如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。
|
PROPAGATION_SUPPORTS
|
支持当前事务,如果当前没有事务,就以非事务方式执行。
|
PROPAGATION_MANDATORY
|
使用当前的事务,如果当前没有事务,就抛出异常。
|
PROPAGATION_REQUIRES_NEW
|
新建事务,如果当前存在事务,把当前事务挂起。
|
PROPAGATION_NOT_SUPPORTED
|
以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
|
PROPAGATION_NEVER
|
以非事务方式执行,如果当前存在事务,则抛出异常。
|
PROPAGATION_NESTED
|
如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。
|
分享到:
相关推荐
Spring事务类型详解: PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_...
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播 PROPAGATION_REQUIRED PROPAGATION_SUPPORTS PROPAGATION_MANDATORY PROPAGATION_...
通过代码解析spring传播特性,包括 1、Propagation.REQUIRED 方法被调用时自动开启事务,在事务范围内使用则使用同一个事务,否则开启新事务。 2、Propagation.REQUIRES_NEW 无论何时自身都会开启事务 3、...
<!-- 事务处理 --> class="org.springframework.orm.hibernate3.HibernateTransactionManager">... *">PROPAGATION_REQUIRED,readOnly</prop> *">PROPAGATION_REQUIRED</prop> </props> </property> </bean>
配置datasource-->sessionfacrtory from dataSource--->HibernateTransactionManager(impl)-->PROPAGATION_REQUIRED事物隔离级别 (2).不同点: HibernateDaoSupport: 在impl中要调用的方法要...
彻底搞清楚Spring事务的7种传播级别的原理和使用:PROPAGATION_REQUIRED、PROPAGATION_SUPPORTS、PROPAGATION_MANDATORY、PROPAGATION_REQUIRES_NEW、PROPAGATION_NOT_SUPPORTED、PROPAGATION_NEVER、PROP
*" propagation="REQUIRED"/> *" propagation="REQUIRED"/> *" propagation="REQUIRED"/> *" read-only="true"/> eclipse出不来自动补齐功能。 要在开头加上这二句: 1.xmlns:tx=...
Spring事务传播机制可以通过Propagation枚举类中的不同值来指定,共包括七种不同的传播行为。具体来说,Spring事务传播机制包括以下七种: REQUIRED:如果当前没有事务,则创建一个新的事务;如果当前已经存在事务,...
问题提出:Spring对Hibernate有自动管理事务功能,业务类的方法调用DAO类...PROPAGATION_REQUIRED:如果当前没有事务,就新建一个事物,如果已经存在一个事物中,加入到这个事物中,具体请查阅Spring的事物传播行为。
文件数据存储在Blob类型的FILE_CONTENT表字段上,在Spring中采用OracleLobHandler来处理Lob字段(包括Clob和Blob),由于在程序中不需要引用到oracle数据驱动程序的具体类且屏蔽了不同数据库处理Lob字段方法上的...
*" propagation="REQUIRED"/> *" propagation="REQUIRED"/> *" read-only="true"/> </tx:advice> <!-- 那些类的哪些方法参与事务 --> (* com.ccc..*.*(..))"/> <!-- 配置事务管理器,...
*">PROPAGATION_REQUIRED <!-- 定义BeanNameAutoProxyCreator,该bean是个bean后处理器,无需被引用,因此没有id属性--> class="org.springframework.aop.framework.autoproxy....
Propagation PropertiesBeanDefinitionReader PropertiesEditor PropertiesFactoryBean PropertiesLoaderSupport PropertiesLoaderUtils PropertiesMethodNameResolver PropertiesPersister ...
@see Propagation#REQUIRED 支持当前事务,如果没有则新建一个事务, 例:a方法调用b方法,如果a方法有事务,则b加入a事务,如果a没有,则b新建一个事务 @see Propagation#SUPPORTS 支持当前事务,如果没有则以非...
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" ... xmlns:context=... *" propagation="REQUIRED"/> *" propagation="REQUIRED"/> </beans>
3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................
propagation 其他没有事务的业务方法调用的时候!我们如何进行事务传递! 默认值:required:调用者有 我就有!调用者没有我自己开启一个事务 也有! dml SUPPORTS:调用者有 我就有!调用者没有我也不添加! 适用于查询...
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" ... *" propagation="REQUIRED" read-only="true" /> *" propagation="REQUIRED" read-only="true" /> ...
无需写hibernate的配置文件,而是将hibernate的配置直接加入到spring配置文件中 配置hibernate的映射文件地址 --> <value>com/direct/domain/Employee.hbm.xml</value> <value>...