在使用spring和mybatis时,如果对象的某个属性是整数类型,最好定义其为Long,Integer包装类型,不要使用long,int。因为long,int不传值时,默认为0,这样作为过滤条件会导致查询结果有误。
一般我们在mybatis中判断条件是否为空时写法如下:
<if test="pinyinCode != null and pinyinCode != ''">
AND bs.PINYIN_CODE = #{pinyinCode, jdbcType=VARCHAR }
</if>
如果是Long,Integer类型时,如果设置其为0,那么在mybatis中 !=‘’ 是不成立的,因此对于Long,Integer类型做如下判断:
<if test="anesthetist != null">
AND bs.ANESTHETIST = #{anesthetist, jdbcType=INTEGER }
</if>