记个坑!
当Java实体对象为整型时
private Integer status;
<if>标签做判断时,传入的值为0,即status的值为0,
0在mybatis等于""
也就是status==’‘,因此在这里0作为查询条件失效了
<if test="status != null and status != '' ">and status = #{status}</if>
解决方案
1.添加一个为0判断or status == 0
<if test="status != '' and status != null or status == 0">
and orders.status = #{status,jdbcType=INTEGER}
</if>
2.去除为空字符判断
<if test="status != null">
and orders.status = #{status,jdbcType=INTEGER}
</if>
以上解决方式的意思是一致:将有为空的可能去掉。
参考https://blog.csdn.net/qq_19331985/article/details/105125995
参考 0不识别-CSDN博客" target="_blank">mybatis查询传入为0时,失效_<if test="null != status and status != ''"> 0不识别-CSDN博客