错误导致原因:时间分页的筛查条件时,因为传入的时间为String类型,在SQL中使用">="表示开始时间报错
入参的实体类:
java
@Data
@ApiModel("学生列表查询的筛选条件实体类")
@AllArgsConstructor
@NoArgsConstructor
public class UserInvo{
@ApiModelProperty("年龄")
private Integr age;
@ApiModelProperty("开始时间")
private String startTime;
@ApiModelProperty("结束时间")
private String endTime;
}
UserMapper接口对应的方法:
java
//根据条件查询学生列表
List<User> queryUserList(@Param("inVo") UserInvo userInvo );
UserMapper.xml中对应的SQL
sql
<select id="queryUerList" returnType="User">
select id,name,age from tb_user A
<where>
<if test="inVo.age=!null">
A.age>inVo.age
</if>
<if test="inVo.startTime !=null">
A.createtime >=inVo.startTime
</if>
<if test="inVo.endTime !=null">
A.createtime <=inVo.endTime
</if>
<where>
order by A.createtime desc
</select>
原因:报错信息:data 和varbinary在greater than中不兼容
改正方法:分页的开始时间类型改为date,并加上时间格式(注意时间在使用if标签进行判断是否为空时,不能加上 invo.getstartTime!='',否则会导致查询数据不正确)
实体类中开始时间和结束时间修改后如下:
java
@Data
@ApiModel("学生列表查询的筛选条件实体类")
@AllArgsConstructor
@NoArgsConstructor
public class UserInvo{
@ApiModelProperty("年龄")
private Integr age;
@ApiModelProperty("开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd ")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@ApiModelProperty("结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd ")
private Date endTime;
}