前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis-plus的select函数

mybatis-plus的select函数

作者头像
阿超
发布2022-08-17 19:58:21
2.1K0
发布2022-08-17 19:58:21
举报
文章被收录于专栏:快乐阿超快乐阿超

学问是异常珍贵的东西,从任何源泉吸收都不可耻。——阿卜·日·法拉兹

mybatis-plus的条件构造器中如果我们想要过滤字段,则可以使用select函数

官方文档介绍如下:

image-20210823192912635
image-20210823192912635

这里分为两类,其中第一个例子:select("id", "name", "age")可以用于一般Wrapper

如果是lambdaQueryWrapper,则需要使用lambda,例如

代码语言:javascript
复制
Wrappers.lambdaQuery(UserDetail.builder().build()).select(UserDetail::getUsername,UserDetail::getAvatar)

第二类,我们可以按照某种规则去匹配

例如这里我只要password以外的字段

写法如下:

代码语言:javascript
复制
Wrappers.lambdaQuery(UserDetail.builder().build()).select(tableFieldInfo -> !tableFieldInfo.getProperty().equals(PropertyNamer.methodToProperty(LambdaUtils.resolve(UserDetail::getPassword).getImplMethodName())));

官方文档的例子是过滤出以test开头的属性

还有源码注释里的例子如下:

例1: 只要 java 字段名以 “test” 开头的 -> select(i -> i.getProperty().startsWith("test")) 例2: 只要 java 字段属性是 CharSequence 类型的 -> select(TableFieldInfo::isCharSequence) 例3: 只要 java 字段没有填充策略的 -> select(i -> i.getFieldFill() == FieldFill.DEFAULT) 例4: 要全部字段 -> select(i -> true) 例5: 只要主键字段 -> select(i -> false)

image-20210823193740339
image-20210823193740339
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档