码迷,mamicode.com
首页 > 编程语言 > 详细

spring事务传播

时间:2015-11-03 12:14:37      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

@Transactioal

A()

 

@Transactional

B()

 

C()

 

如果A调用B,则A会把它的事务传播给B,它们在同一事务下运行,统一回滚。但如果B方法是require_new,则失败的话,B单独回滚,A不受影响。

如果A调用C,则spring会认为C就是A的代码,他们肯定在同一事务下运行,统一回滚。

但是,如果如下代码:

@Transactional

A(){

   B b = new B();

b.xxMethod();

}

 

如果b.xxMethod()方法有单独写的数据库增删改操作,则根本不在一个事务里,外部大事务失败,它内部不受影响。

多线程中的事务,可能也不是同一事务

 

spring事务传播

标签:

原文地址:http://www.cnblogs.com/godfatherback/p/4932468.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!