最近在项目中遇到一件事情,接口参数中存在一个标志位,类型设置为Integer。并且这里采用0,1进行标志判断。
然后为了避免前端传递null和空值,在Mapper里加了这么一个判断:
<if test='flag!=null and flag!=""'> </if>
原本最初的意思是不为空和null的时候我们才写入某段sql,但是实际操作发现:
flag为1的时候通过了不为空的判断,flag为0的时候没有通过不为空的判断也就是flag为0和flag为“”空串等效。
要避免这个问题需要将 flag!="" 判断去掉。