今天测试提的一个bug,我一度怀疑是他估计搞事情,后来发现是真的存在,
描述:
页面上有三个键: 全部, 已派车, 未派车 ,单选框,顾名思义,全部包含已派车和未派车,
bug的来源是点击未派车的时候搜出出来的数据是错误的
我在没有看代码开日志的时候就想了,要错就全错,不可能就一种选项错吧,然后我就看日志,发现当选择未派车的时候
该字段对应的是false,在日志中,这个字段没有加入到查询条件中,但是当true的时候是对的
我在service层打印了一下值,是false没有错.于是我在service层做了判断,如果true就变成1,false就变成0.因为数据库中布尔值就是0和1,
(sqlserver数据库),
entity.put("pcyes", "true".equals(entity.getString("pcyes"))? 1 : ("false".equals(entity.getString("pcyes")) ?0:"" ) );
重启后还是不正确,依旧无法判断0;
接下来
service层没错,继续下去就是xml文件了,该条件的代码如下:
<if test="pcyes!= null and pcyes!=''">
<![CDATA[ AND T_CAR_OUT.pcyes = #{pcyes} ]]>
</if>
我没认为我的判断是错误的,但是既然false/0是进不来的,service层都有数据,只有这里错了,我考虑了一下,就先取掉了
pcyes!='',
<if test="yipai != null">
<![CDATA[ AND T_CAR_OUT.pcyes = #{yipai} ]]>
</if>
没想到真的成功了,好坑,
然后上网查了一下,这里确实是个坑:
参考自:
http://blog.csdn.net/lich1n/article/details/73511180