MybatisPlusException: can not use this method for “getSqlFirst“

阅读: 评论:0

MybatisPlusException: can not use this method for “getSqlFirst“

MybatisPlusException: can not use this method for “getSqlFirst“

1.环境说明:

mybatis-plus-boot-starter: 3.3.2

2.异常位置:

10:23:09.492 | http-nio-80-exec-1 | ERROR | C.[.[.[.[dispatcherServlet] -> Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception batis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 'ew != null and ew.sqlFirst != null'. Cause: org.l.OgnlException: sqlFirst [ptions.MybatisPlusException: can not use this method for "getSqlFirst"]] with root cause  
ptions.MybatisPlusException: can not use this method for "getSqlFirst"at lkit.ExceptionUtils.mpe(ExceptionUtils.java:49)...

3.触发异常的代码:

LambdaQueryChainWrapper<LibInfo> lq = this.lambdaQuery();
int sum = lq.orderByAsc(LibInfo::getLibOrder).count();

4.解决办法:

LambdaQueryWrapper<LibInfo> lq = Wrappers.lambdaQuery();
int sum = lq.orderByAsc(LibInfo::getLibOrder).count();

5.触发原因查找过程分析:

首先到mybatisPlus官网

依次选择 [指南->核心功能->CRUD接口]

可以看到里面需要的都是Wrapper<T>接口类型实现类的参数.
但里面通篇都没有讲如何获取这个Wrapper类型

接下来我们进入[指南->核心功能->条件构造器]

从头读到尾后发现官方给出的构建方式只有一行

All(Wrappers.<MysqlData>lambdaQuery().eq(MysqlData::getGroup, 1));

这里面用到的就是解决方案里面的查询方法参数

6. this.lambdaUpdate()方法和this.lambdaQuery()方法是做什么的?

这两个方法的返回值是LambdaUpdateChainWrapper和LambdaQueryChainWrapper类型(都有Chain字符串)

再结合 [指南->核心功能->CRUD接口]里面的[Chain]小节,可以推断他们是用来链式查询并修改和删除的(以下是原文):

// 链式查询 普通
QueryChainWrapper<T> query();
// 链式查询 lambda 式。注意:不支持 Kotlin
LambdaQueryChainWrapper<T> lambdaQuery(); // 示例:
query().eq("column", value).one();
lambdaQuery().eq(Entity::getId, value).list();// 链式更改 普通
UpdateChainWrapper<T> update();
// 链式更改 lambda 式。注意:不支持 Kotlin 
LambdaUpdateChainWrapper<T> lambdaUpdate();// 示例:
update().eq("column", value).remove();
lambdaUpdate().eq(Entity::getId, value).update(entity);

7.导致开发者迷惑的是Wrappers类没有单独讲解

官方的坑,最坑爹

本文发布于:2024-01-31 14:12:49,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170668156829101.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23