Mybatis中if判断遇到的坑

最近在项目开发的过程中,遇到了Mybatis的一个坑(也许是Mybatis有意这样设计的),对于Integer或者Long这种引用数据类型,在做if判断的时候,如果引用数据类型为0,则mybatis将会视为”“空字符串,所以走不进判断逻辑里。

以下余额字段为Long类型,availableAmount值为0时,将走不进判断方法内的示例截图:

这里写图片描述

解决方法:

在test判断条件中添加”or availableAmount==0“即可,以下是示例截图:

这里写图片描述

或者在业务场景允许的情况下,只判断availableAmount!=null

<if test="availableAmount!=null">
    ...
</if>

猜你喜欢

转载自blog.csdn.net/weixin_42873937/article/details/81485223