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>