这是一个根据list集合的查找数据的 sql,在接收list的时候加了判断 list != ‘ ’ “”,引起了集合与Stirng类型的比较,故报错
<if test="list != null and list != '' ">
AND roo_id IN
<foreach collection="list" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>
</if>

解决方案: 将判断条件改为 : list.size >0

<if test="list != null and list.size > 0 ">
AND roo_id IN
<foreach collection="list" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>
</if>

本文解决了一个在使用MyBatis进行SQL查询时,由于集合参数类型判断不当导致的错误。原本的代码错误地比较了集合与空字符串,正确的做法应当检查集合的大小是否大于零。文章详细介绍了错误的产生原因及修正后的代码实现。

253

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



