mybatis 3.4.6,日期字段做比较操作,日期字段为空时,报错
2018-04-06 18:04:26,614 INFO [OrderRelationController.java:345] : nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
### Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
2018-04-06 18:04:26,815 ERROR [MIBaseController.java:69] : 调用search接口。返回结果:{"body":{},"head":{"appVersion":"","dataVersion":"","deployVersion":"","msgCount":"","rspCode":"1","rspMsg":"查询失败"}}
经查是mybatis的bug,在对日期字段进行比较操作时,只能做null判断,不能做空串判断 <sql id="condition_sql">
<if test="startTime !=null and startTime !='' "> and ordertime >= #{startTime} </if>
<if test="endTime !=null and endTime !='' "> and ordertime <=#{endTime} </if>
</sql>
正确的配置如下:
<sql id="condition_sql">
<if test="startTime !=null"> and ordertime >= #{startTime} </if>
<if test="endTime !=null"> and ordertime <=#{endTime} </if>
</sql>