com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Class must not be null at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:49) ~[mybatis-plus-core-3.5.3.jar:3.5.3] at com.baomidou.mybatisplus.core.toolkit.Assert.isTrue(Assert.java:38) ~[mybatis-plus-core-3.5.3.jar:3.5.3] at com.baomidou.mybatisplus.core.toolkit.Assert.notNull(Assert.java:72) ~[mybatis-plus-core-3.5.3.jar:3.5.3] at com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils.currentSessionFactory(GlobalConfigUtils.java:53) ~[mybatis-plus-core-3.5.3.jar:3.5.3] at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.sqlSession(SqlHelper.java:86) ~[mybatis-plus-extension-3.5.3.jar:3.5.3] at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.execute(SqlHelper.java:301) ~[mybatis-plus-extension-3.5.3.jar:3.5.3]
@Override public Class<T> getEntityClass() { return entityClass; }
可以看到这个实现就是直接返回了LambdaQueryChainWrapper类的成员变量entityClass,而这个变量在我们前面讲到的构建LambdaQueryChainWrapper类对象过程中是没有赋值的,所以导致后面在使用这个值时报了MybatisPlusException: Class must not be null异常,而在3.5.3.1版本中LambdaQueryChainWrapper类的getEntityClass()函数返回的是super.wrapperChildren.getEntityClass():
1 2 3 4
@Override public Class<T> getEntityClass() { returnsuper.wrapperChildren.getEntityClass(); }