1.现象描述
从 git 上下载 seata 1.4.2 版本,集成到 demo 后测试发现,seata 服务端日志显示回滚成功,客户端日志无报错,但是实际上数据并没有回滚,undo_log表没有数据记录。
2.解决方法
这个问题困扰了我三天,靠!把配置看了一遍又一遍,做了一次次尝试,均以失败告终,最后一个seata交流群的老哥告诉我可能是数据库主键自增的锅。
然后我一看我的数据表果然是自增的,遂吧业务表的主键自增去除,再次测试,成功回滚数据,T_T。
接下来再次把数据库自增加上,然后在代码侧,数据入库时候加上id而不依赖于数据库生成,再次测试,也能成功回滚数据。
由此,原来是没有设置主键的原因!