Mybatis-Plus查询中如何排除标识字段
作者:DT辰白 发布时间:2023-11-23 20:38:46
一、查询中排除标识字段
1.1 测试查询
@Test
public void findAllTest() {
List<User> userList = userMapper.selectList(null);
userList.forEach(System.out::println);
}
1.2 实体类字段不添加@TableField注解
//逻辑删除注解(0 未删除 1 已删除)
@TableLogic
/*@TableField(select = false)*/
private Boolean isDeleted;
在没有加注解的情况下,is_deleted在查询中存在
Preparing: SELECT id,name,email,age,status,is_deleted,version FROM user WHERE is_deleted=0
1.3 实体类字段添加@TableField注解
//逻辑删除注解(0 未删除 1 已删除)
@TableLogic
@TableField(select = false)
private Boolean isDeleted;
在加注解的情况下,is_deleted在查询中不存在
Preparing: SELECT id,name,email,age,status,version FROM user WHERE is_deleted=0
二、查询中排除标识字段,自定义方法时需要注意
比如:自定义,查询年龄大于xxx岁的,返回list集合
@Test
public void mySelectTest() {
// 查询年龄大于xxx岁的
List<User> userList = userMapper.mySelectList(Wrappers.<User>lambdaQuery()
.gt(User::getAge,1));
userList.forEach(System.out::println);
}
@Select("select * from user ${ew.customSqlSegment}")
List<User> mySelectList(@Param(Constants.WRAPPER) Wrapper<User> wrapper);
此时查看控制台打印结果:
@TableField(select = false)该注解对于自定义方法查询失效了,怎么做呢?加限定条件
// 查询年龄大于xxx岁的
List<User> userList = userMapper.mySelectList(Wrappers.<User>lambdaQuery()
.gt(User::getAge,1).eq(User::getIsDeleted,0));
三、@TableField注解其他用法
Mybatis-plus使用注解 @TableField(exist = false) 注明非数据库字段属性
@TableField(exist = false)
注解加载bean属性上,表示当前属性不是数据库的字段,但在项目中必须使用,这样在新增等使用bean的时候,mybatis-plus就会忽略这个,不会报错
Mybatis-Plus排除自定义字段不查询
需求原因
由于数据库表设计为一张为组表
一张为对应组下的参数表
在查询数据时想要在查询组表的同时吧对应组下的数据页同时查出来
所以在组实体类下增加了一个对应的参数来接受对应的组数据
错误截图
错误分析
根据查询语句来看
条件查询默认把所有字段都查出来了
但由于自定义的字段在数据库中不存在,所以报错
尝试
这里最大的问题就是如何把自定义字段排除掉,在网上搜了一圈,
最后才在Mybatis-plus的官方文档里发现
@TableFiled有一个exist属性,是用来定义字段是否为数据库表字段的。。。。
于是把该属性加上
重新运行
完美解决!
结论
有问题下次先看官方文档吧,以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家
来源:https://blog.csdn.net/qq_41107231/article/details/106967654


猜你喜欢
- 本文实例为大家分享了Android SeekBar实现平滑滚动的具体代码,供大家参考,具体内容如下由于项目需要,SeekBar只需要三个档,
- 在 Android 中倒计时功能是比较常用的一个功能,比如短信验证码,付款倒计时等。实现方式有Handler、Thread 等,但是实现起来
- 这篇文章主要介绍了Java通过Scanner了解if...else if语句,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
- cookie机制和session机制的区别具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持
- 我们知道在C语言编译时,有那么几个常用的优化编译选项,分别是-O0,-O1,-O2,-O3以及-Os。之前一直觉得既然是优化选
- 相信很多人在读取文件的时候都会碰到乱码的情况,所谓乱码就是错乱的编码的意思,造成乱码的是由于编码不一致导致的。演示程序:新建3个文本文件:编
- package com.test.html;import com.alibaba.fastjson.JSON;import org.apac
- XML的主要用途--数据存储和数据描述--是一个优良的配置文件--相当于一个小型数据库--XML不依赖于任何一种编程语言,是独立的W3C提供
- 递归是一个非常有用的知识点。写点实例帮助自己记忆中间有过程代码首先一个javapojo类package com.qcf.po;import
- 服务提供者@GetMapping("/{id}") public void queryJobInfoLogD
- 1 前言单例模式是我们经常使用的一种模式,一般来说很多资料都建议我们写成如下的模式:/** * Created by qiyei2015 o
- 在开发时,我们会遇到文字过长,TextView不能完全展示,但又不想文字换行展示,这样有时会影响美观。这时我们就需要文字滚动播放,让用户可以
- JSTL JSTL简介:JSTL的全称:JSP Standard Tag Library,JSP标准标签库JSTL的作用:&nbs
- 这篇文章主要介绍了Spring boot2X负载均衡和反向代理实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- 运用到的MongoDB支持的C#驱动,当前版本为1.6.0下载地址:https://github.com/mongodb/mongo-csh
- C语言代码由上到下依次执行,原则上函数定义要出现在函数调用之前,否则就会报错。但在实际开发中,经常会在函数定义之前使用它们,这个时候就需要提
- 使用Apache.POI中HSSFWorkbook导出到Excel,具体内容如下所示:1.引入Poi依赖(3.12)依赖如下:<dep
- Spring Bean的生命周期?首先说一下Servlet的生命周期:实例化,初始init,接收请求service,销毁destroy;Sp
- 本文为大家分享了java实现水果超市管理系统的具体代码,供大家参考,具体内容如下首先建立水果类的界面public class Fruit {
- 1. F1弹出帮助文档先找个后缀是pdf、docx等格式的的帮助文档,将它放在项目的helpDoc下。设置其“复制到输出