爲什麼mybatis中使用拼接查詢條件時,如果傳入數字 0 ,使用 !=null !="" 爲false,無法拼接上呢?

問題:
在使用<if>標籤時 傳入數字類型,值爲0;期望實際sql語句拼接該值,實際上未拼接該值
原因:
0!="" 被判定爲false, 導致if判斷爲false不進行拼接操作
因爲mybatis中採用的時ognl的處理方式 “” == 0 ==false
具體轉換邏輯在ognl.OgnlOps.compareWithConversion中
解決:
一般直接判param !=null即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章