1、错误:

nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 'ew.sqlSegment != null and ew.sqlSegment != '' and ew.nonEmptyOfWhere'. Cause: org.apache.ibatis.ognl.OgnlException: sqlSegment [com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: This is impossible to happen]

2、原因:

这个是MyBatisPlus的一个bug导致的,我的MybatisPlus版本是3.2.0 项目中是这么用的:

QueryWrapper<VehicleInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda()
        .eq(VehicleInfo :: getVehicleId,vehicleId)
        .eq(VehicleInfo :: getType,2)
        .eq(VehicleInfo :: getCreateData,createDate)
        .eq(VehicleInfo :: getLoginStatus, 1);
 return this.list(queryWrapper);

查询时会报上面的错误,而且这个错误很诡异,发布到服务器上就报错,本地跑啥事儿没有,折腾了好长时间

3、解决:

要么使用xml写SQL,要么使用如下形式,或者更换MybatisPlus版本

QueryWrapper<VehicleInfo> queryWrapper = new QueryWrapper<>();
queryWrapper
        .eq("vehicle_id",vehicleId)
        .eq("type",2)
        .eq("create_data",createDate)
        .eq("login_status", 1);
return this.list(queryWrapper);
复制代码
分类:
后端
  •