我正在使用ibatis + DWR,但是当我将地图传递给ibatis时,我会收到如下错误:
原因:com.ibatis.sqlmap.client.SqlMapException:ParameterObject或 property不是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 :(得分:0)
我已在以下帖子https://stackoverflow.com/questions/18997883/malformed-url-exception-in-ibatis/19025819#19025819中回答了完全相同的问题。请参考它。问题的解决方案非常简单,确保嵌套在迭代标记<iterate></iterate>
中的参数(在您的情况下为“ utidlist ”)确实是一个列表/集合,而不是列表。导致此错误的原因是您的可迭代属性“ utidlist ”不是列表。如果你能把它变成一个列表而不是一个平价值,你就可以了。
万一你仍然可以让它工作,你可能还想粘贴一整堆日志,以便你可以看到出了什么问题。