Mybatis报错:malformed ognl expression:shr!=null
最近在表命名的时候,有个“审核人“、“审批人” 的字段,以拼音命名成“shr”。结果在mybatis编译时报错了:Caused by: org.apache.ibatis.ognl.ExpressionSyntaxExcep:malformed ognl expression:shr!=null。
遇到此问题需要检查一下表中是否存在字段名为shr的,如果存在,那么就是shr字段与mybatis的OGNL表达式发生了冲突。其实shr是一个关键字,它代表的是字符>>的意思。所以在创建表的时候,定义字段也需要注意,避免使用关键字定义字段名。
除了shr之外,还有常见的一些命名可能会产出冲突,比如说:
eq 对应字符 ==
neq 对应字符 !=
gt 对应字符 >
lte 对应字符 <
gte 对应字符 >=
lte 对应字符 <=
shl 对应字符 <<
shr 对应字符 >>
ushr 对应字符 >>>
band 对应字符 &
and 对应字符 &&
bor 对应字符 |
xor 对应字符 ^