0
点赞
收藏
分享

微信扫一扫

MyBatis解析<if>动态sql时,Integer类型值为0,返回false


踩坑日记,内容如题


如题,MyBatis中如果参数类型为Integer,并且参数的值为0,那么动态SQL在判断下面条件的时候,返回为false

<if test="money != null and money != ''">


解决办法,去掉判断字符串为 ‘’ 的情况即可

<if test="money != null">


补充

MyBatis源码的位置,肯定是解析动态SQL的位置,所以我们可以直接定位到IfSqlNode类中



MyBatis解析<if>动态sql时,Integer类型值为0,返回false_字符串


然后就是Ognl表达式的解析流程了(本人调试了一会,没调试出来,后期有时间再调试补充完全)



MyBatis解析<if>动态sql时,Integer类型值为0,返回false_开发语言_02


MyBatis解析<if>动态sql时,Integer类型值为0,返回false_SQL_03


举报

相关推荐

0 条评论