Java 为什么mybatis3不支持设置foreach?
如果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上运行良好 请注意,单个参数的预期名称为集合: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复制异常
请详细发布异常情况好吗?@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>