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>