mybatis传参0和“”的问题

今天遇到一个问题,mybatis传入0这个参数,但是sql打印时0参数并没有设置进去,通过debug发现是mapper的问题

1
2
3
<if test="corpusId != null and corpusId != ''">
and corpus_id = #{corpusId}
</if>

如果参数类型为int或者long,那么当传入的参数为0时,corpusId != ''判断为false,所以该判断条件没有加入

解决方法

所有数字类型,mapper中无需添加XXX != ''条件,否则没有办法传入0参数

赏个🍗吧
0%