1,项目中遇到包含时间的查询抛异常
### 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
原因:
在mybatisi写的sql中存在了对 《时间!= ''》的判断,其实只要 《时间!=null》即可
<if test="claimSearchEntity.registDateStart != null and claimSearchEntity.registDateStart!='' and claimSearchEntity.registDateEnd != null and claimSearchEntity.registDateEnd!=''">
and ri.report_date BETWEEN #{claimSearchEntity.registDateStart} and #{claimSearchEntity.registDateEnd}
</if>
2,在mybatis中可以使用<![CDATA[这]]> 这样的格式,因为在mybatis sql是写在xml文件中,可能会有部分符号存在转义的可能性,而在xml中,<![CDATA[这]]>保证了不会被转义,所以可以使用这个格式保证符号,特殊代码的准确性
遇到问题后续继续更新

在项目中遇到数据库查询异常,错误信息显示尝试比较Date与String类型导致失败。问题源于MyBatis的SQL条件判断,只需检查时间是否为null而非空字符串。修正后的解决方案是仅判断时间是否不为空。另外,介绍了在MyBatis中使用<![CDATA[]]>包裹SQL以避免XML转义的问题,确保特殊字符的正确解析。
6564

被折叠的 条评论
为什么被折叠?



