Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么mybatis3不支持设置foreach?_Java_Mybatis_Sqlmap - Fatal编程技术网

Java 为什么mybatis3不支持设置foreach?

Java 为什么mybatis3不支持设置foreach?,java,mybatis,sqlmap,Java,Mybatis,Sqlmap,如果parameterType为java.util.Set或其实现,则使用此参数执行foreach将抛出java.lang.UnsupportedOperationException mybatis3内部的原因是CollectionWrapper没有实现get方法,只是抛出了一个异常。 我想知道它是否是预期设计及其原因。说明可以使用集合: 您可以将任何Iterable对象(例如List、Set等)作为 以及foreach作为集合参数的任何映射或数组对象 我可以用Mybatis 3.2.7复制异常

如果parameterType为java.util.Set或其实现,则使用此参数执行foreach将抛出java.lang.UnsupportedOperationException

mybatis3内部的原因是CollectionWrapper没有实现get方法,只是抛出了一个异常。 我想知道它是否是预期设计及其原因。

说明可以使用集合:

您可以将任何Iterable对象(例如List、Set等)作为 以及foreach作为集合参数的任何映射或数组对象

我可以用Mybatis 3.2.7复制异常

但它在Mybatis 3.3.0上运行良好

请注意,单个参数的预期名称为集合:

可以使用集合的状态:

您可以将任何Iterable对象(例如List、Set等)作为 以及foreach作为集合参数的任何映射或数组对象

我可以用Mybatis 3.2.7复制异常

但它在Mybatis 3.3.0上运行良好

请注意,单个参数的预期名称为集合:


请详细发布异常情况好吗?@Forward All是不支持的操作异常。如果需要,请查看mybatis的CollectionWrapper。是否可以详细发布异常?@Forward All是UnsupportedOperationException。如果你愿意的话,可以看看mybatis的CollectionWrapper。我试过mybatis 3.4.0并检查了它的工作情况。CollectionWrapper的空实现不是问题:我尝试了mybatis 3.4.0并检查了它的工作情况。CollectionWrapper的空实现不是问题:
<select id="selectList" parameterType="java.util.HashSet" resultMap="someMap">
    SELECT key FROM tb_my_table
    WHERE value IN (
        <foreach collection="set" item="item" separator=",">
        #{item}
        </foreach>
    )
</select>
<select id="selectList" parameterType="java.util.HashSet" resultMap="someMap">
    SELECT key FROM tb_my_table
    WHERE value IN (
        <foreach collection="collection" item="item" separator=",">
        #{item}
        </foreach>
    )
</select>