错误的sql语句:
<if test="entity.orderType != null and entity.orderType != ''">
AND t1.type = #{entity.orderType}
</if>
当前如果是orderType = 0 ,结果查出来的数据和想要状态是0数据一样,于是我就改造为
如下:
<if test="entity.orderType != null">
AND t1.type = #{entity.orderType}
</if>
问题原因就是当orderType的值为0的时候,因为其数据类型为Integer,所以这个判断是为false的,就是说int类型的判断,Mybatis是认定0为’'的,所以为false。
解决办法是去掉空串的判断