今天遇到一个问题:
MybatisPlus Dao在传入一个map中还包含list和array时,foreach的问题
Dao层
Page<SysUserEntity> listSysUser(IPage page, Map<String, Object> params);
Xml
<if test="params.zylbs != null and params.zylbs!=''">
AND u.zylb IN
<foreach item="item" collection="params.zylbs" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="params.userIds != null and params.userIds.size>0">
AND u.id IN(#{params.userIds})
<foreach item="item" collection="params.userIds" open="(" separator="," close=")">
#{item}
</foreach>
</if>
其中zylbs和userIds分別是array和list
格外要注意一个点:
当list进行if判断是否为null是不能使用 !=" ",会引起String和List的比较,会抛出异常,尽量使用size,如上
Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.ArrayList and java.lang.String
版权声明:本文为weixin_45271204原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。