当前使用版本(必填,否则不予处理)

3.5.2

该问题是如何引起的?(确定最新版也有问题再提!!!)

字段名是lt,le,gt,ge等,再插入数据时会报错,使用@TableField(value = "lt")也无法解决

重现步骤(如果有就写完整)

随便建一个表,该表有一个字段叫lt,然后使用baseMapper.insert()插入数据就会报错

报错信息

Caused by: org.apache.ibatis.ognl.ParseException: Encountered " "lt" "lt "" at line 1, column 1. Was expecting one of: ":" ... "not" ... "+" ... "-" ... "~" ... "!" ... "(" ... "true" ... "false" ... "null" ... "#this" ... "#root" ... "#" ... "[" ... "{" ... "@" ... "new" ... ... ... "\'" ... "`" ... "\"" ... ... ...

Comment From: miemieYaho

org.apache.ibatis.ognl.ParseException

Comment From: hxb-sudo

@TableField(value = "lt")这样试试

Comment From: MinionsCoding

@TableField(value = "lt")这样试试 试过了,不行

Comment From: liuzhaowei55

@TableField(value = "`lt`")

Comment From: liuzhaowei55

@TableField(value = "lt")这样试试 试过了,不行

他是让你用反引号把字段名包起来,结果反引号被 GitHub 渲染了

Comment From: MinionsCoding

@TableField(value = "lt")这样试试 试过了,不行

他是让你用反引号把字段名包起来,结果反引号被 GitHub 渲染了

我知道他的本意,因为我标题中就指明了试过用使用反引号,并且我的反引号也被GitHub吞了

Comment From: liuzhaowei55

@TableField(value = "lt")这样试试 试过了,不行

他是让你用反引号把字段名包起来,结果反引号被 GitHub 渲染了

我知道他的本意,因为我标题中就指明了试过用使用反引号,并且我的反引号也被GitHub吞了

试了下好像确实不行,gt gte 都不能用作属性名称,不过可以随意改个其他名字 然后用 tablefield 注解映射为正确的数据库字段名

Comment From: melon-huang

报错原因是实体类属性名称是lt吧,和@TableField的配置无关。 尝试了以下解决方法: 1、修改实体类属性名称,避开lt、le、gt、ge等; 2、自定义插入方法

<insert id="insertUser">
        INSERT INTO `sys_user` (<if test="user.getLt() != null">lt</if>)
        VALUES (#{user.lt})
</insert>

Comment From: nieqiurong

尽量规避这种ognl关键字