星空网 > 软件开发 > Java

Mysql引起的spring事务失效

老项目加新功能,导致出现service调用service的情况..一共2张表有数据的添加删除.然后测试了一下事务,表A和表B,我在表B中抛了异常,但结果发现,表B回滚正常,但是表A并没有回滚.显示事务失效.

比较巧的是表A和表B是在不同的service中,所以最开始想到的是多service导致的,但是查看了事务的定义后发现,事务的传播被设置成required,所以按理说所有service会处在一个事务中.经过痛苦的各种折腾各种尝试未果后,无意中发现每次都是表A事务无法回滚,这就有点奇怪了,这明显就是操作表A的事务失效了.其实这里我已经非常接近真正的原因了,只不过我依然认为可能是自己的错误配置导致操作表A的service事务失效,又是一阵折腾,实在看不出来有什么错误的地方,有点无奈.

没有什么思路,只好百度一下都有什么原因能导致事务失败,看了一堆帖子,无意中看到一个情况,mysql引擎导致的事务失效,瞬间一下都明白了..

找到表A的定义语句末尾能看到如下:

ENGINE=MyISAM AUTO_INCREMENT=40 DEFAULT CHARSET=gbk

稍微百度一下就能知道,mysql的MyISAM引擎是不支持事务的,所以想要支持事务,必须选择InnoDB引擎,将表A的mysql引擎改成InnoDB后,一切恢复正常.

感想:事务失效第一印象一定是各种配置或是代码的错误,但是看似无害的数据库可能才是隐藏在背后的罪魁祸首..




原标题:Mysql引起的spring事务失效

关键词:MYSQL

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

TikTok 推出新的 AI 广告脚本生成器:https://www.kjdsnews.com/a/1481673.html
TikTok Shop能否破解美国电商市场?:https://www.kjdsnews.com/a/1481674.html
【聚焦欧洲】将破千亿!德国电商市场进军指南,先看这几点:https://www.kjdsnews.com/a/1481675.html
日本海外仓是什么?有什么作用?包含哪些费用?:https://www.kjdsnews.com/a/1481676.html
对赌失败,深圳大卖成被告,要赔偿7千万:https://www.kjdsnews.com/a/1481677.html
日本少女最爱?!“花知晓”从冷门品牌到全网刷屏,是如何营销的?:https://www.kjdsnews.com/a/1481678.html
无锡旅游景点竹海 - 无锡的竹海:https://www.vstour.cn/a/363178.html
5月贾汪好玩的地方 贾汪哪有好玩的地方:https://www.vstour.cn/a/363179.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流