@Transactional事务的传播,事务回滚

神歌圣音 2020-10-16 04:12:29

大佬们当函数D出现异常时,函数B和函数C会发生事务回滚么
public class TT{

public void A(){

GG.B();
GG.C();
GG.D();
}
}


public class GG{

@Transactional
public void B();

@Transactional
public void C();

@Transactional
public void D();

}
...全文
11256 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
心随念 2020-11-12
  • 打赏
  • 举报
回复
看下这个 耐着性子看,很详细 https://bbs.csdn.net/topics/391875990
小7oO 2020-11-12
  • 打赏
  • 举报
回复
不会回滚,把注解加到A方法上可以达到你的要求。
Valerie00 2020-11-11
  • 打赏
  • 举报
回复
b c d三个事务是隔离开来的,当方法a开启事务之后才会将b c d 加到事务a中去
wycfight 2020-11-11
  • 打赏
  • 举报
回复
这个还需要研究一下,A上面加了应该都能回滚,但是A不加应该不会回滚吧
走在四季 2020-10-19
  • 打赏
  • 举报
回复
引用 2 楼 神歌圣音 的回复:
[quote=引用 1 楼 走在四季 的回复:]这样应该是不会的,因为 @Transactional 是单个方法级的。 B C D 写在同一个方法里加 @Transactional 会。
请忽略我的回答,我上网再查查,好好学习下事务的传播性,以前都是一个事物一个方法一个业务。
街头小贩 2020-10-17
  • 打赏
  • 举报
回复
这取决于A方法, B,C,D方法的事务的传播性(propagation) 。可以在A上总是开启一个事务,BCD方法使用若存在事务上下文加入事务 https://developer.ibm.com/zh/articles/j-master-spring-transactional-use/
KeepSayingNo 2020-10-17
  • 打赏
  • 举报
回复
你每个方法都是隔离的,不会影响
韩_师兄 2020-10-16
  • 打赏
  • 举报
回复
在A方法上加注解
神歌圣音 2020-10-16
  • 打赏
  • 举报
回复
引用 1 楼 走在四季 的回复:
这样应该是不会的,因为 @Transactional 是单个方法级的。 B C D 写在同一个方法里加 @Transactional 会。
那在以上的方法基础上,函数D()又调用函数E(),函数E()有事务注解,在函数E()发生异常的时候函数D()是否会回滚
走在四季 2020-10-16
  • 打赏
  • 举报
回复
这样应该是不会的,因为 @Transactional 是单个方法级的。 B C D 写在同一个方法里加 @Transactional 会。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧