mybatis-plus-boot-starter: 3.3.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)...
LambdaQueryChainWrapper<LibInfo> lq = this.lambdaQuery();
int sum = lq.orderByAsc(LibInfo::getLibOrder).count();
LambdaQueryWrapper<LibInfo> lq = Wrappers.lambdaQuery();
int sum = lq.orderByAsc(LibInfo::getLibOrder).count();
首先到mybatisPlus官网
依次选择 [指南->核心功能->CRUD接口]
可以看到里面需要的都是Wrapper<T>接口类型实现类的参数.
但里面通篇都没有讲如何获取这个Wrapper类型
接下来我们进入[指南->核心功能->条件构造器]
从头读到尾后发现官方给出的构建方式只有一行
All(Wrappers.<MysqlData>lambdaQuery().eq(MysqlData::getGroup, 1));
这里面用到的就是解决方案里面的查询方法参数
这两个方法的返回值是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);
官方的坑,最坑爹
本文发布于:2024-01-31 14:12:49,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170668156829101.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |