Mybatis判断Integer失效

Posted root_zhb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis判断Integer失效相关的知识,希望对你有一定的参考价值。

Mybatis判断Integer失效

问题

Mybatis传入Integer,值为0时,不更新

错误代码

实体类如下:

public class CompanyContact
    private Integer enabledFlag;
    //其他属性忽略

mapper文件如下:

<if test="companyContact.defaultFlag!=null and companyContact.defaultFlag!=''">
    and default_Flag =#companyContact.defaultFlag
</if>

原因

Mybatis在判断 int 类型时,0认为是空字符串,由于加了companyContact.defaultFlag!=’’,因此判断为false,不走 if 逻辑

解决

去掉 !=’’ 判断

<if test="companyContact.defaultFlag!=null">
    and default_Flag =#companyContact.defaultFlag
</if>

其他(匹配 int 值)

<if test='number=="0".toString'>
	<!--相关逻辑-->
</if>
<if test='number=="1".toString'>
	<!--相关逻辑-->
</if>

以上是关于Mybatis判断Integer失效的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis integer 0 判断为空

如何解决mybatis在xml中传入Integer整型参数为0时查询条件失效问题?亲测有效

如何解决mybatis在xml中传入Integer整型参数为0时查询条件失效问题?亲测有效

mybatis判断Long,Integer类型的条件是否为空

mybatis 字符串比较失效

摘录-Mybatis - Integer值为0的数据 return false