当前使用版本(必填,否则不予处理)
3.5.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
数据库字段为数据库保留字符的时候 生成的sql没有带`导致查询失败
重现步骤(如果有就写完整)
新建字段 order
新建实体类
@TableField("order")
String order;
如果不加 @TableField("order")
会导致报错
报错信息
The error may exist in com/ti/mybits/mapper/MapperTiOrder.java (best guess)
The error may involve defaultParameterMap
The error occurred while setting parameters
SQL: SELECT id,order,addtime,num,type,pay,lpay,tday,user,xh,uid FROM tb_order WHERE (uid = ?) ORDER BY id DESC
Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order,addtime,num,type,pay,lpay,tday,user,xh,uid FROM tb_order
' at line 1 ; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order,addtime,num,type,pay,lpay,tday,user,xh,uid FROM tb_order
Comment From: VampireAchao
可按照官方文档: https://baomidou.com/pages/223848/#tablefield 其中提到的注解 在字段属性加上
@TableField("`order`")
处理 mybatisplus对mysql默认没做关键字处理 原因推测有: 1.mp兼容的数据库太多,关键字各不相同,频繁更新维护麻烦 2.有些时候需要在字段处写一些函数进行查询处理,甚至是子查询等,若对关键字做处理,则可能导致函数不可用
望谅解