当前使用版本(必填,否则不予处理)

V 3.5.3

该问题是如何引起的?(确定最新版也有问题再提!!!)

this.lambdaQuery() 调用one() 查询时,没有数据时候会报错,没有细看,发现新版本增加了execute

default R execute(SFunction, R> function) { return Optional.ofNullable(getBaseMapper()).map(function).orElseGet(() -> SqlHelper.execute(getEntityClass(), function)); } 这里是不是有问题,还是我理解的有问题 这里是拿到结果之后再orElse ,然后去找entityClass 然后就报错了

重现步骤(如果有就写完整)

User one = userService.lambdaQuery().eq(User::getAge, 100).one(); 没有数据的话就会报下面的错

报错信息

com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Class must not be null at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:49) at com.baomidou.mybatisplus.core.toolkit.Assert.isTrue(Assert.java:38) at com.baomidou.mybatisplus.core.toolkit.Assert.notNull(Assert.java:72) at com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils.currentSessionFactory(GlobalConfigUtils.java:53) at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.sqlSession(SqlHelper.java:86) at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.execute(SqlHelper.java:301) at com.baomidou.mybatisplus.extension.conditions.ChainWrapper.lambda$execute$0(ChainWrapper.java:63) at java.util.Optional.orElseGet(Optional.java:267) at com.baomidou.mybatisplus.extension.conditions.ChainWrapper.execute(ChainWrapper.java:63) at com.baomidou.mybatisplus.extension.conditions.query.ChainQuery.one(ChainQuery.java:48)

Comment From: miemieYaho

用最新版

Comment From: mastcer

最新版就是3.5.3版本,还是一样报错 return Optional.ofNullable(getBaseMapper()).map(function).orElseGet(() -> SqlHelper.execute(getEntityClass(), function)); 这里逻辑应该是有问题的,根据代码注释是为了「执行baseMapper操作,有baseMapper操作时使用baseMapper,没有时通过entityClass获取baseMapper,再使用」,但是当前面查不到数据时,也会执行orElseGet

Comment From: miemieYaho

最新版就是3.5.3版本,还是一样报错 return Optional.ofNullable(getBaseMapper()).map(function).orElseGet(() -> SqlHelper.execute(getEntityClass(), function)); 这里逻辑应该是有问题的,根据代码注释是为了「执行baseMapper操作,有baseMapper操作时使用baseMapper,没有时通过entityClass获取baseMapper,再使用」,但是当前面查不到数据时,也会执行orElseGet

MyBatis-Plus this.lambdaQuery() 调用one() 查询时,没有数据时候会报错