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>
本文介绍了一个在使用MyBatis框架时遇到的问题:当尝试循环一个List集合时出现了类型比较错误。文中详细解释了错误原因,并提供了解决方案,即正确判断List是否为空的方法。
5478

被折叠的 条评论
为什么被折叠?



