mybtais-plus报错BuilderException: Error evaluating expression ‘ew.sqlSegment != null and ew.sqlSegment

在使用LambdaQuery方法时遇到报错,发现与MyBatisPlus版本兼容性有关。将LambdaQuery替换为QueryWrapper解决问题,可能是Lambda表达式解析导致的异常。建议对版本或条件拼接方式进行调整以避免此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习项目时,出现了这个报错,几经排查,发现原因:
我这里是因为使用了LambdaQuery方法,不知为何就出现了冲突,导致错误,代码如下:
@Override
public CommonUser findByOpenId(String openId) {
return lambdaQuery().eq(CommonUser::getOpenId, openId)
.one();
控制台也提示到了这里有问题,经过查询,发现有人更换mybtaisplus版本能解决,但我试了不行。
把LambdaQuery改成QueryWrapper,代码如下:
@Override
public CommonUser findByOpenId(String openId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("open_id",openId);
return commonUserMapper.selectOne(queryWrapper);
就能行了,至少目前项目跑起来了,能动了,具体原因我也不太懂,问了ai,回答是:将LambdaQuery方法改成了QueryWrapper方法后能够成功运行,可能是因为QueryWrapper的条件拼接方式更符合你的需求,或者是LambdaQuery在解析Lambda表达式时出现了一些问题导致了异常。

希望能帮到遇见同样问题的朋友

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值