mysql+spring 声明式事务不起作用

 

详细情况如图所示, 真的找不出是哪里存在了问题。。。 也许是申明式事务配置错误? 求大家帮我看看啦, 谢谢!!!


 

 

 

 

2个回答

invalid bound statement (not found) 你的那个statement名字估计写的不对

jinnianshilongnian
jinnianshilongnian 你应该在service层开事务 即WorkerServiceImpl
接近 7 年之前 回复
lygoing
lygoing 老师你好啊, 我那是是制造的错误哦, 是为了验证事务是否起作用了。 这个Service方法中包含了 2 个操作,一个update和一个select 按道理应该是这个方法中所有操作都执行成功了才会提交事务对吧? 但是当select 操作出现异常的时候, update 的记录没有回滚,是为什么呀? 数据库是mysql 我的表的存储引擎也是InnoDB呀
接近 7 年之前 回复

首先,不确定到底是哪里出错了,但有几个地方你可以再确定下,
1.配置事务的地方增加rollback-for 和 no-rollback-for 属性的值,但是我也不确定这两个属性是否有默认值.
[code="java"]
rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException" />
[/code]
2.确定你的service方法在你配置的管控之下(service类在控制的包下,类名和配置的一致,方法名和配置的一致),
3.确定你service方法向外抛出的异常是你配置的需要rollback的异常!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐