Mybatis 報錯invalid comparison: java.util.LinkedHashmap and java.lang.String

1. 代碼

 xml 文件

 <select id="configTemps" resultType="hashmap">
        SELECT id,
               name,
               template_content
        from t_a_notify_template
        where template_class = #{param1}
      <if test=" #{param2}!= null  ">
        AND template_type_id = #{param2}
      </if>
    </select>

 Mapper 層

List<Map<String,Object>> configTemps(String templateClass, String templateTypeId);

2. 分析原因

代碼量很少,原因比較明顯,是說我的比較兩邊類型不同而導致的錯誤,一個是map,一個是string。

而我做了比較的地方就一個,講道理是沒啥問題的 一個string類型 判空

<if test=" #{param2}!= null  ">

這次因爲偷懶沒有使用@param 註解到mapper的參數上,所有需要使用#{param1}~#{paramN}來調用參數。

突然想到是不是寫法有問題

改成如下

<if test=" #{param2 != null}  ">

一測試,果然成功。

 

-------------------------------------------------------------------------------------------------

geng更新:

代碼寫暈了 。正常是不帶#{}做比較的

<if test="param2 != null and param2 !='' ">

 

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