3.0.5
插入数据的字段包含保留字段,比如有一个实体类,其中有一个字段名为change
在mysql建立一张具有保留字段(比如change)的表,使用mybatis-plus尝试给该表插入数据时报错
Caused by: org.apache.ibatis.executor.BatchExecutorException: com.wangyaochong.tfp.tushare.generated.mapper.TushareDailyMapper.insert (batch index #1) failed. Cause: java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'change
自行注解里用转义符包裹
很感谢你的回复!
但我还是不太明白你说的解决办法,我看了之前有人提过查询时含有关键字的报错的问题,https://github.com/baomidou/mybatis-plus/issues/775
解决方案是在查询条件中包裹字段,
但是对于插入操作,不涉及到注解,只是简单调用一下AbcService.save()方法,我不明白你说的注解里用转义符包裹是什么意思,希望你能进一步说明,非常感谢。
就是那个意思
但我是插入操作啊,没有用到Wrapper
明白了,你的回答对我非常有帮助,非常感谢!!!
只能这样手动解决吗?自动生产的时候能不能配置识别保留字段?
为什么不在生成的sql语句里面所有的字段都加上``?
或者想楼上的说的识别保留字段.
这样做即可:
主键用@TableId,并将字段名用``包裹,例如:
@TableId(value = "`key`")
String key;
非主键用@TableField,并将字段名用``包裹,例如:
@TableField(value = "`value`")
String value;
Most helpful comment
这样做即可:
主键用@TableId,并将字段名用``包裹,例如:
非主键用@TableField,并将字段名用``包裹,例如: