描述
最近开发遇见一个问题, 就是使用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上的业务逻辑