天天看點

實力踩坑:invalid comparison: java.util.Date and java.lang.String1、錯誤日志2、分析原因解決

實力踩坑:invalid comparison: java.util.Date and java.lang.String

  • 1、錯誤日志
  • 2、分析原因解決

1、錯誤日志

Caused by: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
	at org.apache.ibatis.ognl.OgnlOps.compareWithConversion(OgnlOps.java:93)
	at org.apache.ibatis.ognl.OgnlOps.isEqual(OgnlOps.java:143)
	at org.apache.ibatis.ognl.OgnlOps.equal(OgnlOps.java:802)
	at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:53)
	at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
	at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
	at org.apache.ibatis.ognl.ASTAnd.getValueBody(ASTAnd.java:61)
           

2、分析原因解決

找到mybatis的xml檔案,發現隻有這兩個字段是日期類型,仔細想了一下,那八成就是日期類型Date不能進行字元串

Date != ""

判斷,隻進行

Date != null

判斷即可!

<if test='startDate != null and startDate != ""'>
     start_date = #{startDate,jdbcType=TIMESTAMP},
</if>
<if test='endDate != null and endDate != ""'>
     end_date = #{endDate,jdbcType=TIMESTAMP}
</if>
           

隻需改成如下:

<if test='startDate != null'>
     start_date = #{startDate,jdbcType=TIMESTAMP},
</if>
<if test='endDate != null'>
     end_date = #{endDate,jdbcType=TIMESTAMP}
</if>
           

再次運作就妥了!!!

繼續閱讀