comalicloud.smartdrive(com.alibaba.druid.sql.parser.ParserException: syntax error, expect ), pos 40, line 1, column 41, token EOF)
导读:使用mybatis-plus批量插入的时候报错信息为:com.alibaba.druid.sql.parser.ParserException: syntax error, expect , pos 40, line 1, column 41, token EOF...
使用mybatis-plus批量插入的时候报错信息为:com.alibaba.druid.sql.parser.ParserException: syntax error, expect ), pos 40, line 1, column 41, token EOF
排查sql日志发现生成的sql为:
Preparing: INSERT INTO ods_zq_zqgs_zqtz_m VALUES
merge sql error, dbType mysql, druid-1.1.22, sql : INSERT INTO ods_zq_zqgs_zqtz_m VALUES
com.alibaba.druid.sql.parser.ParserException: syntax error, expect ), pos 40, line 1, column 41, token EOF可以看出 ,是sql语法错误 ,缺失了小括号) , 看上面的语句很明显可以看出 ,生成的sql语句values后面缺失了括号 。
SQL缺失括号的原因
mybatis-plus批量插入的字段生成依赖对象的属性值 ,当对象属性值都是null的时候 ,就发生了上述错误!总得来说算是mybatis-plus的bug 。但是考虑的业务上居然插入了一条全是null的记录 ,确实也不合理!所以说 ,这个bug的抛出来让开发者解决也可以理解。
解决办法
注意插入的对象是否全部属性为null,将某些属性赋值值 ,或干脆去除此记录即可!
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!