您的位置:首页 > 其它

foreach 是传入参数是 Set<Long[]>时,数据循环都是同样数据的问题

2016-02-25 04:12 501 查看
<if test="organizationJobIds!=null and organizationJobIds.size()!=0">
<foreach collection="organizationJobIds" index="index" item="item">
or (organization_id = #{item[0]} and job_id = #{item[1]})
</foreach>
</if>

测试数据
Set<Long[]> organizationJobIds = new HashSet<>();
organizationJobIds.add(new Long[]{1L,2L});
organizationJobIds.add(new Long[]{3L,4L});
organizationJobIds.add(new Long[]{9L,11L});

生成的sql语句是
or (organization_id = 3 and job_id = 4) or (organization_id = 3 and job_id = 4) or (organization_id = 3 and job_id = 4)
都是同样的数据。

Set<Long[]> 不是数组,是其他对象也不会出现这种问题。


把xml代码中的#改成$就正常显示不再重复了
<if test="organizationJobIds!=null and organizationJobIds.size()!=0">
<foreach collection="organizationJobIds" index="index" item="item">
or (organization_id = ${item[0]} and job_id = ${item[1]})
</foreach>
</if>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: