报错信息
2021-03-31 10:13:25.121 [http-nio-8103-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is 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] with root cause
java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
UserParam
@Data
public class UserParam {
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@ApiModelProperty("结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
}
XML Statement 标签
<select id="pageQueryUser" resultType="com.qingke.studytour.manager.entity.dto.UserDetailVo">
select id, open_id , mobile, register_time, official_account_follow_status from qk_user_info where 1=1
<if test="userParam.mobile!=null and userParam.mobile!=''">
AND mobile = #{userParam.mobile}
</if>
<if test="userParam.startTime!=null and userParam.startTime!='' and userParam.endTime!=null and userParam.endTime!=''">
AND register_time > #{userParam.startTime} and register_time < #{userParam.endTime}
</if>
</select>
报错原因
传入的userParam.startTime 和userParam.endTime均为日期类型,无法进行和空串的判断,
userParam.startTime!=’'是无法的比较,去除这个无效的比较语句
<select id="pageQueryUser" resultType="com.qingke.studytour.manager.entity.dto.UserDetailVo">
select id, open_id , mobile, register_time, official_account_follow_status from qk_user_info where 1=1
<if test="userParam.mobile!=null and userParam.mobile!=''">
AND mobile = #{userParam.mobile}
</if>
<if test="userParam.startTime!=null and userParam.endTime!=null ">
AND register_time > #{userParam.startTime} and register_time < #{userParam.endTime}
</if>
</select>