当前使用版本(必填,否则不予处理)
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关键字