记个坑!

当Java实体对象为整型时

private Integer status;

mybatis

<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博客

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐