mybatis在where中比较复杂的判断

        <if test="param.applicationStateInNumber != null and param.applicationStateInNumber != ''">
            and  #{param.applicationStateInNumber,jdbcType=INTEGER} like (case when (fa.whether_invoice is null  and fa.whether_pay is null ) then "1"
            when  (fa. whether_invoice=1 and fa.whether_pay is null ) then  "2、3"
            when (fa.whether_invoice = 1 and fa.whether_pay  = 1) then "4" end)
        </if>

这个是需要判断传入的参数不为空,且传入的参数在一个case when 中,起初把

#{param.applicationStateInNumber,jdbcType=INTEGER}

写成了

param.applicationStateInNumber

报错:badsqlGrammer,未知的参数param.applicationStateInNumber

#{param.applicationStateInNumber,jdbcType=INTEGER}

猜你喜欢

转载自www.cnblogs.com/huanghuanghui/p/9295808.html