为什么mybatis3不支持set foreach?

Why doesn't mybatis3 support Set foreach?

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

<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>

mybatis3内部的原因是CollectionWrapper没有实现get方法,只是抛出一个异常。
我想知道是不是故意设计的以及原因。

documentation 声明可以使用集合:

You can pass any Iterable object (for example List, Set, etc.), as well as any Map or Array object to foreach as collection parameter.

我可以用 Mybatis 3.2.7 重现异常。

但是它在 Mybatis 3.3.0 上运行良好。

请注意,单个参数的预期名称是 collection:

<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>