xml的查询语句使用!=null and !=''判空,结果把传入的参数数字0被判断为空字符串
处理方法:
- 改变查询语句,只使用!= null,不使用!=''。查询的实体定义查询字段类型为Integer,前端传入空字符串的情况下Integer不会接受而是为null
- 查询语句保持不变,改变查询参数类型为String
问题记录:
数据库表字段:
`new_sap_mark` int(0) NULL DEFAULT 1 COMMENT '新SAP标识:1-是;0否'
xml查询判断语句(部分):
<if test="query.newSapMark != null and query.newSapMark != ''">
AND tcm.new_sap_mark = #{query.newSapMark}
</if>
查询实体:
/**
* 新SAP标识
*/
@ApiModelProperty(value = "新SAP标识")
private Integer newSapMark;
日志打印:
在传入参数类型为Integer的前提下,第一张传入的参数为0,打印的查询语句中并没有拼接上tcm.new_sap_mark =0,第二张传入的参数为1,打印的查询语句中拼接上了tcm.new_sap_mark = 1。
将传入参数类型修改为String,不改变查询语句判断,第一张传入的参数为0,打印的查询语句中拼接上了tcm.new_sap_mark =0。
遗留问题:
目前这个情况在本地开发没有,测试环境有,暂时没头绪排除出是为什么,有知道的大佬麻烦评论告知一下。