Mybatis传参数 0 不进if判断条件
项目场景:
项目场景:在一次项目开发过程中,从前端传过来Integer 0 的一个参数,但是进入Mybatis if 条件判断的时候发现一直进不去判断条件问题描述:
具体代码的展示 后端接收参数@GetMapping("/pageAll" )
public R getArchivesBorrowRecordPageAll(Page page, ArchivesBorrowRecord archivesBorrowRecord) {
return R.ok(archivesBorrowRecordService.pageAll(page, archivesBorrowRecord));
}
实体类
private Integer backFlag;
Mybatis部分
<if test=" query.backFlag !=null and query.backFlag != ''">
and a.BACK_FLAG =#{
query.backFlag}
</if>
原因分析:
经过测试发现,Mybatis 在判断整数0的时候会把默认为 ’ ’ ,所以判断 !=’ '的条件为false 不会进去判断条件
解决方案:
第一种解决方案,判断条件只需要判断不为null <if test=" query.backFlag !=null">
and a.BACK_FLAG =#{
query.backFlag}
</if>
第二种解决方案,判断条件判断==0.0
<if test=" (query.backFlag !=null and query.backFlag != '' ) or query.backFlag == 0.0">
and a.BACK_FLAG =#{
query.backFlag}
</if>