当前使用版本(必填,否则不予处理)
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
该问题是如何引起的?(确定最新版也有问题再提!!!)
jiu's就是很简单的表插入做的测试,表结构都类似,但是部分表就会出现schame无法使用,而且sql不会动态的去除null值
同样配置,同样的库,另外的表是有的而且也会去动态去除null,也是单单入库操作
Mapper 也没什么不同
重现步骤(如果有就写完整)
报错信息
不是报错,是schame 无法使用的问题
Comment From: airesgit
图片是裂了?还是我这边网速问题
Comment From: miemieYaho
看看你的entity
Comment From: airesgit
看看你的entity
我所有的entity没有用任何注解的,因为是从mybatis切换过来的,另外那张正常的unit表没有注解也是会加上的,是必须要加上吗?我在调试源码的时候,前面进行拼接sqlHelp 类的 tableName是有加schame的,但是后面获取的sql的就没有这个东西
Comment From: miemieYaho
启动时debugInsert这个类看看注入的sql呢
Comment From: airesgit
启动时debug
Insert这个类看看注入的sql呢
ji就是那个,而且我看sqlHelp里面解析的时候,没有注解tableName,也是会从xml里面拼接的
,后面的sql 提取出来之后就不见了,没有找到是在哪儿进行的拼接处理,但是获取出来之后就没了。在此时配置都是有的
,走到这儿发现sql就是没有schame的了,sql拼接太多实现没找着是哪个
Comment From: miemieYaho
你用的什么插件?
Comment From: airesgit
你用的什么插件?
是指哪个,所有mybatis相关插件都是不存在的,springboot2.0.3+druid,具体的其它很多,因为在项目里边
zhe'ge这个是另外一张表的,sql完全正常
Comment From: miemieYaho
你都debug到了表名初始化那里了,你倒是看看为什么你那个表表名不正确啊
Comment From: airesgit
你都debug到了表名初始化那里了,你倒是看看为什么你那个表表名不正确啊
找了,没找到boundSql是在什么时候赋值进去的
Comment From: miemieYaho
这里!
Comment From: airesgit
这里!
那里都是正常的,到后面拼接sql的script的时候也是正常的,但是最终的sql是不正常的,这个最终赋参的地方我没找着在哪块
Comment From: miemieYaho
初始化正常那就要看你用了什么插件把sql改了
Comment From: airesgit
初始化正常那就要看你用了什么插件把sql改了
解析脚本参数赋值是在哪块做的,数据源操作都用的plus,没有其它的插件,而且有部分表又是正常的,都是简单的 mapper调用insert 方法,解析脚本参数赋值是在哪个类做的,没找着这个类,是不是这里有问题
Comment From: miemieYaho
mp只是注入sql,剩下的都是原生mybatis的事
Comment From: airesgit
mp只是注入sql,剩下的都是原生mybatis的事
解决了,因为是从原本的mybatis切换过来的,mybatis处理的时候是以xml为准的,会将mp生成的script替换掉
Comment From: airesgit
mp只是注入sql,剩下的都是原生mybatis的事
Comment From: airesgit
有一个配置哪怕mapper里面没有和xml的映射,这个类在判断有这个文件的时候就会加载里面的sql进来,所以并没有用开始解析的sql,以前单纯使用mybatis的时候如果没有mapper接口对应的映射这个xml定义的好像是没用的(哪怕不删),建议这个可以做下优化处理
Comment From: miemieYaho
就这样的,xml写了以xml为准