描述
最近开发遇见一个问题, 就是使用mybatisPlus内置的插入语句后, 发现在后面的代码中, 无法获取到其自增的主键id, 找了各种资料, 最终发现是原来xml中有一个insert的语句, 和mybtisPlus的insert发生了冲突 , 所以导致无法获取到id, 接下来是问题复现
复现

上图中, 可以发现sql可以正常输出和插入, 但是下面确实获取不到他的自增的id,
解决
在mapper对应的xml文件中, 搜索insert找到了如下语句

, 点击左侧箭头, 发现进入了mybatisPlus内置的baseMapper中了, 这并不是我们想要的, 由此可见, 一定是两者发生了冲突, 导致虽然可以插入数据, 但是无法获取不到对应的自定id, 该条sql删除, 重试

发现id已经可以正常获取, 问题解决
总结
由于本项目前期使用的是mybatis, 后期为了方便进行crud, 改成了mybatisPlus, 这时候其中有一些mapper的sql语句已经写好了, 并且名称和mybatisPlus的一致, 这就导致了两者发生冲突, 建议以后如果不是特别复杂的sql语句, 还是使用mybatisPlus自带的curd, 可以避免许多不必要的麻烦, 将精力放在处理Service上的业务逻辑
MyBatisPlus与自定义SQL冲突导致主键ID获取失败的解决

在项目中,使用MyBatisPlus进行数据插入时,遇到无法获取自增主键ID的问题。原因是之前为MyBatis编写的XML插入语句与MyBatisPlus的内置插入语句产生冲突。删除冲突的自定义XML插入语句后,成功解决了主键ID获取不到的难题。建议尽量使用MyBatisPlus自带的CRUD操作,以避免类似问题,将更多精力集中在业务逻辑处理上。
1367

被折叠的 条评论
为什么被折叠?



