0

我正在使用 ibatis + DWR ,但是当我将地图传递给 ibatis 时,我会收到如下错误:

原因:com.ibatis.sqlmap.client.SqlMapException:ParameterObject 或属性不是集合、数组或迭代器。

这是我的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}

关于这个错误的任何想法?

4

1 回答 1

0

我在以下帖子中回答了完全相同的问题https://stackoverflow.com/questions/18997883/malformed-url-exception-in-ibatis/19025819#19025819请参考它。您的问题的解决方案非常简单,确保嵌套在您的迭代标记中的参数(<iterate></iterate>在您的情况下是“ utidlist ”)确实是一个列表/集合,而只是一个列表。此错误的原因是您的可迭代属性“ utidlist ”不是列表。如果你能把它变成一个列表而不是一个固定的值,你就可以了。

以防万一你仍然可以让它工作,你可能还想粘贴一整堆日志,这样你就可以看到出了什么问题。

于 2013-09-26T10:50:14.143 回答