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);

此时查看控制台打印结果:

Mybatis-Plus查询中如何排除标识字段

@TableField(select = false)该注解对于自定义方法查询失效了,怎么做呢?加限定条件


// 查询年龄大于xxx岁的
List<User> userList = userMapper.mySelectList(Wrappers.<User>lambdaQuery()
         .gt(User::getAge,1).eq(User::getIsDeleted,0));

Mybatis-Plus查询中如何排除标识字段

三、@TableField注解其他用法

Mybatis-plus使用注解 @TableField(exist = false) 注明非数据库字段属性


@TableField(exist = false)

注解加载bean属性上,表示当前属性不是数据库的字段,但在项目中必须使用,这样在新增等使用bean的时候,mybatis-plus就会忽略这个,不会报错

Mybatis-Plus排除自定义字段不查询

需求原因

由于数据库表设计为一张为组表

一张为对应组下的参数表

在查询数据时想要在查询组表的同时吧对应组下的数据页同时查出来

所以在组实体类下增加了一个对应的参数来接受对应的组数据

Mybatis-Plus查询中如何排除标识字段

错误截图

Mybatis-Plus查询中如何排除标识字段

错误分析

根据查询语句来看

条件查询默认把所有字段都查出来了

但由于自定义的字段在数据库中不存在,所以报错

尝试

这里最大的问题就是如何把自定义字段排除掉,在网上搜了一圈,

最后才在Mybatis-plus的官方文档里发现

@TableFiled有一个exist属性,是用来定义字段是否为数据库表字段的。。。。

Mybatis-Plus查询中如何排除标识字段

Mybatis-Plus查询中如何排除标识字段

于是把该属性加上

Mybatis-Plus查询中如何排除标识字段

重新运行

Mybatis-Plus查询中如何排除标识字段

完美解决!

结论

有问题下次先看官方文档吧,以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家

来源:https://blog.csdn.net/qq_41107231/article/details/106967654

标签:Mybatis-Plus,查询,排除,字段
0
投稿

猜你喜欢

  • java设置session过期时间的实现方法

    2022-02-18 20:25:29
  • Java连接ftp服务器实例代码

    2022-04-26 23:12:37
  • Android实现图片加载进度提示

    2022-09-11 17:54:44
  • 在RecyclerView中实现button的跳转功能

    2023-06-17 20:21:14
  • Android ViewPager中显示图片与播放视频的填坑记录

    2023-12-23 14:28:40
  • aop的实现原理_动力节点Java学院整理

    2022-04-02 16:09:21
  • 详解Spring Boot + Mybatis 实现动态数据源

    2023-06-08 13:53:18
  • Java针对封装数组的简单复杂度分析方法

    2022-12-22 03:28:58
  • 使用SpringBoot-JPA进行自定义保存及批量保存功能

    2022-05-26 22:42:43
  • 通过Java实现反向代理集群服务的平滑分配

    2023-05-28 12:51:54
  • 关于@ConditionalOnProperty的作用及用法说明

    2023-11-24 02:39:19
  • C#实现将窗体固定在显示器的左上角且不能移动的方法

    2022-03-04 18:34:17
  • Mybatis中的Criteria条件查询方式

    2022-02-21 06:49:46
  • Java日期时间操作的方法

    2021-12-27 18:36:05
  • Java8简单了解Lambda表达式与函数式接口

    2022-11-07 00:22:31
  • go打包aar及flutter调用aar流程详解

    2023-06-24 17:39:21
  • Struts2中Action中是否需要实现Execute方法

    2021-10-30 06:57:23
  • 解决idea中yml文件不识别的问题

    2021-12-07 02:09:28
  • java对象类型转换和多态性(实例讲解)

    2023-06-23 16:33:53
  • java时区转换的理解及示例详解

    2022-01-19 08:35:20
  • asp之家 软件编程 m.aspxhome.com