文档章节

PROPAGATION_REQUIRED PROPAGATION_NESTED

ajavaloser
 ajavaloser
发布于 2012/09/20 11:05
字数 317
阅读 522
收藏 0

Spring API上说nested在当前有事务时在事务中运行,其他和required一样(Execute within a nested transaction if a current transaction exists, behave like PROPAGATION_REQUIRED else.)这句话没看懂,required也是支持当前事务的啊,还是这个else并不是指 if a current transaction exists呢,得查查nested能不能自己新开一个事务。


Reference里说nested有多个savepoint,内部transaction可以回滚,required如果内部的transaction回滚会抛出异常。

他们的共同点,就是都可以嵌套,就算有子transaction的话,都运行在一个数据库事务中。

nested只能在JDBC3.0以上驱动的支持savepoint的 DataSourceTransactionManager中使用

============

Execute within a nested transaction if a current transaction exists, behave like PROPAGATION_REQUIRED else.这句话好像是说当前有事务的话,则运行一个嵌套的事务吗。和required的“Support a current transaction”貌似有区别。required只是简单的support当前事务,并不代表会运行一个嵌套事务。根据reference的讲法,spring有一个逻辑事务的概念,nested运行一个逻辑上的嵌套事务,用savepoint回滚。而required虽然也是运行一个逻辑的嵌套事务,但是没有savepoint支持,回滚会被抛出异常,算不上完整的嵌套事务

© 著作权归作者所有

共有 人打赏支持
ajavaloser
粉丝 18
博文 21
码字总数 4232
作品 0
浦东
高级程序员
私信 提问
Spring嵌套事务解惑(重点)

http://www.iteye.com/topic/35907 PROPAGATION_REQUIRED -- 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAGATION_SUPPORTS -- 支持当前事务,如果当前没有事务...

码代码的小司机
2018/07/01
0
0
Spring管理Hibernate事务之事务传播机制

Spring管理Hibernate事务之事务传播机制 public enum Propagation { REQUIRED(TransactionDefinition.PROPAGATION_REQUIRED), SUPPORTS(TransactionDefinition.PROPAGATION_SUPPORTS), MAND......

秋风醉了
2015/07/28
425
0
Spring声明式事务管理及事务嵌套

一> 事务配置 spring动态代理的一个重要特征是,它是针对接口的,所以我们的dao要通过动态代理来让spring接管事务,就必须在dao前面抽象出一个接口,当然如果没有这样的接口,那么spring会使...

vshcxl
2016/11/30
10
0
Spring事务传播机制

概述 当我们调用一个基于Spring的Service接口方法(如UserService#addUser())时,它将运行于Spring管理的事务 环境中,Service接口方法可能会在内部调用其它的Service接口方法以共同完成一个...

rouway
2011/07/04
0
0
Spring事务的传播行为和隔离级别

7个传播行为,4个隔离级别, Spring事务的传播行为和隔离级别 [ transaction behavior and isolated level ]2007 -08 -01 16 :33事务的传播行为和隔离级别 [ transaction behavior and isola...

wsl_Mr
2013/10/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【C++】智能指针简述(四):shared_ptr

  在开始本文内容之前,我们再来总结一下,前文内容:   1.智能指针采用RAII机制,在构造对象时进行资源的初始化,析构对象时进行资源的清理及汕尾.   2.auto_ptr防止拷贝后析构释放同一块内...

shzwork
22分钟前
1
0
作为Java程序员这些技术都不会,拿什么去涨薪跳槽?

引言 当下,正面临着近几年来的最严重的互联网寒冬,听得最多的一句话便是:相见于江湖~,缩减HC、裁员不绝于耳,大家都是人心惶惶,年前如此,年后想必肯定又是一场更为惨烈的江湖厮杀。但博...

别打我会飞
45分钟前
2
0
springboot开发之定时器quartz 定时任务调度(压缩版,抽取quartz的单个任务表实现)

前言 老了, 记不住了, 好记性不如烂笔头; 没想到曾经过目不忘的我, 也有这么一天, 岁月蹉跎,学习一天不如一天 难受 Quartz可以用来做什么? Quartz是一个任务调度框架。比如你遇到这样的问题...

尾生
50分钟前
11
0
技术经理平时都干啥?

「技术主管」是开发团队中的某位程序员需要对一起创建系统的整个开发团队负责时所承担的角色。通常他既要对最终交付的软件系统负责,另外也会像一个程序员一样去开发实现系统。 一个技术主管...

春哥大魔王的博客
今天
7
0
java工作流引擎Jflow流程事件和流程节点事件设置

流程实例的引入和设置 关键词: 开源工作流引擎 Java工作流开发 .net开源工作流引擎 流程事件 工作流节点事件 应用场景: 在一些复杂的业务逻辑流程中需要在某个节点或者是流程结束后做一些业...

ccflow周朋
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部