Cause:java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
mybatis xml
前端传入Date类型,后端控制台报错
原因:mybatis 中对于时间参数进行比较时的一个bug. 如果拿传入的时间类型参数与空字符串’'进行对比判断则会引发异常. 所以在上面的代码中去掉空字符串判断, 只保留非空判断就正常了。
改前👇
<select id="***" resultType="***">
select * from table
where fileid = #{fileid}
<if test="startDate != null and startDate != ''">
and effective_date >= #{startDate}
</if>
<if test="endDate != null and endDate != ''">
and effective_date <= #{endDate}
</if>
</select>
改后👇
<select id="***" resultType="***">
select * from table
where fileid = #{fileid}
<if test="startDate != null ">
and effective_date >= #{startDate}
</if>
<if test="endDate != null ">
and effective_date <= #{endDate}
</if>
</select>