最近在工作中,使用mybatis進行查詢的時候發現查詢出來的數據老是不正確,特地看了看日志,發現當傳入參數的為0的時候,myatis的if標簽沒有將判斷語句拼接上去
原來xml配置:
又來經過查證,原來mybatis會把0參數null,所以會導致傳入0會使得if標簽判斷無效。
解決方案:
使用增強判斷,即在test語句中增加 or 字段 == 0,如下
<if test="searchModle != null and searchModle.allowNegative != null and searchModle.allowNegative != '' or searchModle.allowNegative ==0">
AND store_info.allow_negative = #{searchModle.allowNegative}
</if>