mybatis 循环一个list集合,但是出现这个错误:

Caused by: org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.ArrayList and java.lang.String
### Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.ArrayList and java.lang.String

错误的sql:

        <if test="vehicleNums != null  and vehicleNums != '' ">
            and bill.order_num in
            <foreach item="vehicleNum" collection="vehicleNums" open="(" separator="," close=")">
                #{vehicleNum}
            </foreach>
        </if>

 

原因是: 

  • 在接收list的时候加了判断 list != ‘’,引起了集合与Stirng类型的比较,故报错

修改后:

<if test="vehicleNums != null  and vehicleNums.size() > 0 ">
            and bill.order_num in
            <foreach item="vehicleNum" collection="vehicleNums" open="(" separator="," close=")">
                #{vehicleNum}
            </foreach>
        </if>

 

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐