ORM框架map中list遍历问题

今天遇到一个问题:
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版权协议,转载请附上原文出处链接和本声明。