天天看點

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,大功告成,是否能幫助到你了,如果能幫助到你可以通路我的個人部落格,裡面文章多多,還有面試技巧哦

公衆号:純潔的麥田

百度:純潔的麥田