2013-09-26 43 views
0

我使用了ibatis + DWR,但是當我通過一個地圖,iBatis的,我會得到一個錯誤如下:錯誤與ibatis的SQL迭代

原因:com.ibatis.sqlmap.client.SqlMapException: ParameterObject或 屬性不是Collection,Array或Iterator。

這裏是我的SQL:

<update id="updateDarenFlagByUserTagIDs" parameterClass="java.util.Map"> 
    update system_usertag 
    set isdaren = 1 
    where uid = #uid# 
    <isNotEmpty prepend=" AND " property="utidlist"> 
     and utid in 
     <iterate open="(" close=")" conjunction="," property="utidlist"> 
      #utidlist[]# 
     </iterate> 
    </isNotEmpty> 
</update> 
在DWR部分

,在這裏,我通過圖如下:

{'uid':uid, 'utidlist':utidlist} 

此錯誤的任何想法?

回答

0

我已經回答完全相同的問題在以下帖子https://stackoverflow.com/questions/18997883/malformed-url-exception-in-ibatis/19025819#19025819做參考。解決您的問題非常簡單,確保嵌套在您的迭代標記<iterate></iterate>中的參數在您的情況下爲「utidlist」確實是一個列表/集合,只不過是一個列表。此錯誤的原因是您的可迭代屬性「utidlist」不是一個列表。如果你能把它看成一個清單而不是一個單一的值,那你就沒問題。

爲防萬一您仍然可以使用它,您可能還需要粘貼一大堆日誌,以便您可以看到發生了什麼問題。