天天看点

mybatis查询 报错 invalid comparison: java.util.Date and java.lang.String

报错:

2020-06-04 11:03:59.914 ERROR 6150 --- [nio-8080-exec-6] c.h.g.c.exception.GMExceptionHandler      []: 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

org.mybatis.spring.MyBatisSystemException: 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

实例:

<if test=" param.startDate != null and param.startDate !='' and param.endDate != null and param.endDate !=''">
            and date between #{param.startDate} and #{param.endDate}
</if>
           

原因:

从上面应该可以看出来问题出在哪里吧!

其实是时间这个参数,不应该判断为‘’,这个其实是String比较的。你只需要判断null即可

所以正确的应该是

<if test=" param.startDate != null and param.endDate != null">
            and date between #{param.startDate} and #{param.endDate}
</if>
           

OK,大功告成,是否能帮助到你了,如果能帮助到你可以访问我的个人博客,里面文章多多,还有面试技巧哦

公众号:纯洁的麦田

百度:纯洁的麦田