mybatis mapper在使用in查询的时候报一个比较错误

北慕城南 提交于 2020-10-14 13:53:27

查询代码如下:

    <select id="getDeviceIds" resultMap="deviceId">
        select id, device_id from prod_freezer
        <where>
            <if test="companyId != '' and companyId != null">
                and company_id = #{companyId}
            </if>
            <if test="ids!= '' and ids != null">
                and id in
                <foreach collection="ids" item="item" index="index" open="(" separator="," close=")">
                #{item}
                </foreach>
            </if>
        </where>
    </select>

报如下的错

Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.ArrayList and java.lang.String

原来if test的表达式写的不对,传入ids是ArrayList,不能当成字串比较,直接用ids!=null判断即可。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!