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);
复制代码