在使用spring+mybatis开发项目时出现了题中的错误:

### Error updating database.  Cause: java.lang.IllegalArgumentException: invalid comparison: java.lang.String and java.util.Date
### Cause: java.lang.IllegalArgumentException: invalid comparison: java.lang.String and java.util.Date

原因是mybatis 在对日期时间类型的参数进行比较时的一个bug. 如果拿传入的时间类型参数与空字符串‘‘进行对比判断则会引发异常. 所以在if判断条件中的代码要去掉与字符串的判断, 只保留非空判断就正常了。

即:

<if test="createTime != null and createTime !=‘‘ " >

   date(create_time) = date(#{createTime,jdbcType=TIMESTAMP})

 </if>  

改为

<if test="createTime != null">  

    date(create_time) = date(#{createTime,jdbcType=TIMESTAMP})  

</if>  

注意:

如果有多个字段都是日期时间类型(Date),需要检查每个字段的判断条件,当前报错的SQL语句才不会报错。

参考:mybatis报Error updating database. Cause: java.lang.IllegalArgumentException: invalid comparison: java_mybatis一对多出现updating database_sam-123的博客-CSDN博客

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐