mybatis Error updating database. Cause: java.lang.IllegalArgumentException: invalid comparison: java

  • Post author:
  • Post category:java


在使用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博客