Mybatis处理日期类型字段时抛出invalid comparison: java.util.Date and java.lang.String异常

现象: 实体定义了一个Date类型的字段,如下

	/**
	 * 生日
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date birthday;

Mybatis的Mapper定义如下

      		<if test="birthday != null and birthday != ''">
        		birthday = #{birthday, jdbcType=DATE}, 
      		if>

原因: Date或timestamp类型,不能和’'比较,只判断null就行了。
解决方法: 去掉and birthday != ''即可,如下

			<if test="birthday != null">
        		birthday = #{birthday, jdbcType=DATE}, 
      		if>

你可能感兴趣的:(mybatis)