现在项目中要配置嵌套事务,一个service要调用其他service(大约8个)中的方法来完成,要调用的service已经配置的事务,不能修改,现在我想让这调用的8个service的其中一个失败后其他全部都回滚,该怎么配置,框架是ssh,数据库是mysql5.0
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已采纳
关于spring嵌套事务中的回滚问题
收起
- 写回答
- 好问题 1 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
iteye_6273 2011-06-23 01:51关注既然你的框架是SSH架构,那么你所提的问题,应该属于Spring的事务传播机制的范围内。
(基于Spring2.5,3.0应该差不多吧,具体情况要再看看文档)
Spring的事务传播有以下几种:
1.required
当事务传播被设置PROPAGATION_REQUIRED的时候,不同service之间的调用会在同一个事务。即对于已经存在的事务,下一个事务会加入当前事务。这个是spring的默认配置,也是如何符合你要求的配置。2.RequiresNew
PROPAGATION_REQUIRES_NEW,与之前相反,为每一个相关的事务作用域使用了一个完全 独立的事务。在这种情况下,物理事务也将是不同的,因此外部事务可以不受内部事务回滚状态的影响独立提交或者回滚。3.PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
4.PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。 。
5.PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
6.PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2021-11-24 10:06JavaEdge聊AI的博客 更深入理解 Spring 事务。 用户注册完成后,需要给该用户登记一门国学必修课,并更新该门课的登记用户数。 为此,我添加了两个表。 课程表 course,记录课程名称和注册的学生数。 CREATE TABLE `course` ( `id` int...
- 2021-05-28 12:22LiZhen798的博客 Spring事务嵌套的相关问题: 外层事务 Service A 的 Method A() 调用 内层Service B 的 Method B()
- 2021-10-27 08:05飞一站的博客 Spring 嵌套事务回滚的问题 问题描述 项目背景: 问题重现 1. Spring的声明事务 2. 事务的事件处理逻辑 3.实际业务Service层方法 4.Druid数据源的配置 5.测试执行 日志分析 分析问题产生的原因 总结 ...
- 2021-03-06 10:11满洲第一奇男子的博客 问题:在Java项目汇中,添加@Transactional注解,报错之后,事务回滚未生效,数据仍插入数据库中.经查看报错位置位于新增成功之后.空指针异常.一、特性先了解一下@Transactional注解事务的特性,可以更好排查问题1、...
- 2019-11-22 01:16「已注销」的博客 问题:初学者在Java项目汇中,添加@Transactional注解,报错之后,事务回滚未生效,数据仍插入数据库中.经查看报错位置位于新增成功之后.空指针异常.经过查看和总结,其中有错误的,请留言,会尽快改正. 一、特性 先了解一下...
- 2024-03-06 07:52我叫王饱饱的博客 但是如果你使用的还是传统的spring项目,就需要在applicationContext.xml文件...NESTED 如果当前上下文中存在事务,则嵌套事务执行,如果不存在事务,则新建事务。MANDATORY 如果当前上下文中存在事务,否则抛出异常。
- 2023-03-12 03:48陈亦康的博客 带你一次学懂:编程式事务、声明式事务、事务的传播机制!
- 2023-03-07 11:29hippoDocker的博客 调用本类方法导致传播行为失效,同一个 Service 的两个方法之间调用,就会出现这个问题,原因还是在...:在业务代码中,需要对异常单独进行处理,异常不会抛出,但需要事务回滚的情况,这个时候就需要手动调用回滚。
- 2019-03-28 03:22jaryle的博客 这里的Propagation是事务的传播行为,默认是REQUIRED,意思是如果当前没有事务,就开启一个事务,如果已经存在一个事务,就加入到这个事务中; REQUIRES_NEW,新建事务,如果当前存在事务,把当前事务挂起;意思是...
- 2021-01-29 01:09业余草的博客 最近有粉丝在朋友圈问我,面试遇到了Spring双事务不会滚问题,怎么破解。本文结合一个简单案例,希望能解决一部分人的疑惑。系统 A 调用系统 B 执行数据同步,系统 B 返回了错误提示,...
- 没有解决我的问题, 去提问
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司