invalid comparison: java.util.Date and java.lang.String异常原因
### Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:78)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
at com.sun.proxy.$Proxy149.insert(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:271)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:58)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:61
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
原因:实体里定义的是Date类型:
private Date createTime;
而mybatis.xml文件里判断的时候用主要的方式导致:
<if test="createTime != null and createTime !='' ">#{createTime},</if>
解决方案:修改xml里的判断逻辑,如下:
<if test="createTime != null ">#{createTime},</if>
仅做非Null判断。
补充:Long,BigDecimal等同理, 做字符串判断也就会异常了!