原因是:两种类型不能比较
<if test="storeIds!=null and storeIds!=' ' ">
AND store_id IN
<foreach collection="storeIds" item="storeIds" open="(" separator="," close=")">
#{storeIds}
</foreach>
</if>
问题出在:storeIds!=' ',由于我mapper接口storeIds参数是定义成List集合类型,所以不能和字符类型' '比较,改成storeIds.size>0即可,意思一样。
<if test="storeIds!=null and storeIds.size>0" >
AND store_id IN
<foreach collection="storeIds" item="storeIds" open="(" separator="," close=")">
#{storeIds}
</foreach>
</if>