1. 程式人生 > >mybatis條件過濾時候碰到個奇葩的問題,真的太奇葩了

mybatis條件過濾時候碰到個奇葩的問題,真的太奇葩了

 <if test="handleState != null and handleState !='' ">
        and t.handle_state = #{handleState,jdbcType=DECIMAL}
   </if>

上面是where子句的條件判斷,handleState 定義的是短整型short型別,傳遞數字2的時候可以進行條件過濾,當傳遞數字0的時候後臺可以接收到,但mybatis中的sql卻沒傳進去,後來修改判斷條件為下面的:

   <if test="handleState != null and handleState !='' or handleState == 0 ">
            and t.handle_state = #{handleState,jdbcType=DECIMAL}
    </if>

沒錯,就是在test中多加了個handleState == 0條件判斷,然後就可以根據數字0做條件過濾了,暫時還不清楚為什麼會出現這種情況,mybatis是不是對數字0有意見?。。。。下次再碰到這樣的問題,記得在test中多加個判斷條件