mybatis plus 关联数据库排除不必要字段方式

目录
  • 关联数据库排除不必要字段
    • java自带声明该字段是transient的
    • 声明该字段是static的
    • 通过注解声明该字段不是一个数据库表里面的字段
  • 排除自定义字段不查询
    • 需求原因
    • 错误截图
    • 错误分析
    • 尝试

关联数据库排除不必要字段

java自带 声明该字段是 transient 的

    /**
     * 虚拟绑定流程当前审批人对应表字段
     */
    private transient  String status;

声明该字段是 static 的

    /**
     * 虚拟绑定流程当前审批人对应表字段
     */
    private static  String status;

通过注解声明该字段不是一个数据库表里面的字段

    /**
     * 虚拟绑定流程当前审批人对应表字段
     */
    @TableField(exist = false)
    private  String status;

哪种业务场景用哪种方式呢?

如果想既支持序列化又不需要关联数据库字段 ,则用 @TableField;

如果只是不想关联数据库,则三种都可以使用;

项目中,由于导出excel 时候,数据必须序列化和反序列化,所以用 transient 确实能满足排除非数据库字段,但是也会导致数据导出时候为null,所以这种场景最好用@@TableField

排除自定义字段不查询

需求原因

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

一张为对应组下的参数表

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

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

错误截图

错误分析

根据查询语句来看

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

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

尝试

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

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

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

于是把该属性加上

重新运行

完美解决!

结论就是:有问题下次先看官方文档

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • MyBatis-plus数据库字段排序不准确的解决

    目录 MyBatis-plus数据库字段排序不准确 例如:12还没有8,4,2大,这就很郁闷了 解决方案 Mybatis-plus遇到的坑 1. 数据库映射枚举 2. 自增主键 3. mybatis嵌套查询 4. 用updateWrapper的update做更新操作 5. 使用lambaQuery时 6. Integer判断为空 7. 基础类型的判断 8. 事务 9. mybatis 配置了多个数据库 MyBatis-plus数据库字段排序不准确 今天用mybatis-plus进行开发的时候遇到

  • mybatis-plus排除非表中字段的操作

    使用 transient 修饰 private transient String noColumn; 使用 static 修饰 private static String noColumn; 使用 TableField 注解 @TableField(exist=false) private String noColumn; 补充知识:Mybatis plus @TableName实体中添加非数据库字段报错,如增加请在字段上加注解 @TableField(exist = false) 否则会出现以

  • 详解mybatis-plus实体类中字段和数据库中字段名不对应解决办法

    在使用mybatis或者mybatis-plus时候,有些时候会出现数据库的字段名和实体类的字段名不一致的情况,如果运行那么这个字段就会无法进行自动映射而报错.这里就以我的数据库name字段名和这里的实体类的u_name字段名为例. 解决办法有以下三种 方法一: 将数据库中的字段和实体类中的字段名修改成一样的名字 方法二: 如果是自定以mapper.xml文件中手写的sql查询语句,可以给字段起一个别名例如这里就可以写成select name as u_name from- 方法三: 使用注解@

  • mybatis plus 关联数据库排除不必要字段方式

    目录 关联数据库排除不必要字段 java自带声明该字段是transient的 声明该字段是static的 通过注解声明该字段不是一个数据库表里面的字段 排除自定义字段不查询 需求原因 错误截图 错误分析 尝试 关联数据库排除不必要字段 java自带 声明该字段是 transient 的     /**      * 虚拟绑定流程当前审批人对应表字段      */     private transient  String status; 声明该字段是 static 的     /**     

  • MyBatis 接收数据库中没有的字段的解决

    目录 接收数据库中没有的字段 问题描述 问题的解决方法 数据库中找不到相应的字段应该怎么做 数据库中找不到相应的字段 接收数据库中没有的字段 问题描述 浏览器页面想要通过E-hcart表格,展示一些数据.这些数据需要从数据库中计算而来.但是在数据库中没有的字段.比如说要查询某些记录.如车辆的在线数量,离线数量和无数据的数量.这些数据是通过MySql的聚合函数得到的. sql语句如下: SELECT sum( updatetime > date_sub(now(), INTERVAL 0.5 DA

  • MyBatis后端对数据库进行增删改查等操作实例

    目录 1.MyBatis 是什么? 2. MyBatis 的重要性 3. MyBatis 查询 3.1 创建数据库和表 3.2 添加MyBatis框架⽀持 3.2.1 新项目添加MyBatis 3.2.1 老项⽬添加 MyBatis 3.3 配置连接字符串和MyBatis 3.3.1 配置连接字符串 3.3.2 配置mybatis 中的 xml 保存路径 3.4 添加后端代码 3.4.1 添加实体类 3.4.2 添加 mapper 接口 3.4.3 添加UserMapper.xml 3.4.4

  • MyBatis学习教程(四)-如何快速解决字段名与实体类属性名不相同的冲突问题

    在项目开发中,我们经常会遇到表中的字段名和表对应实体类的属性名称不一定都是完全相同的情况,下面小编给大家演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突问题,感兴趣的朋友一起学习吧. 一.准备演示需要使用的表和数据 CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_price FLOAT ); INSERT INTO orders(order_no, or

  • spring集成mybatis实现mysql数据库读写分离

    前言 在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈.幸运的是目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库的数据更新同步到另一台服务器上.网站利用数据库的这一功能,实现数据库读写分离,从而改善数据库负载压力.如下图所示: 应用服务器在写数据的时候,访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库,这样当应用服务器读数据的时候,就可以通过从数据库获得数据.为了便于应用程序访问读写分离后的数据库,通常在应用服务器使用专门的数

  • MyBatis获取插入记录的自增长字段值(ID)

    第一步: 在Mybatis Mapper文件中添加属性"useGeneratedKeys"和"keyProperty",其中keyProperty是Java对象的属性名! <insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id"> insert into spares

  • Spring Boot整合MyBatis连接Oracle数据库的步骤全纪录

    前言 本文主要分享了Spring Boot整合MyBatis连接Oracle数据库的相关内容,下面话不多说了,直接来详细的步骤吧. 步骤如下: 1.Spring Boot项目添加MyBatis依赖和Oracle驱动: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <ver

  • mybatis 连接mysql数据库 tinyint 为boolean类型详解

    字段类型为tinyint(1)的返回类型设置为integer 现象描述: 数据库表字段类型为:tinyint 长度为1,即 类型为:tinyint(1) 查询时,该字段对应的的java类型为boolean 问题描述: 如何将该字段的java类型设置为Integer? 解决方案: 1. 在jdbcUrl添加参数:tinyInt1isBit=false(默认为true): 2.避免使用长度为1的tinyint类型字段存储数字格式的数据: 补充知识:[mybatis]mysql数据库tinyint类型

  • 如何基于mybatis框架查询数据库表数据并打印

    一.需求说明 使用mybatis框架查询数据库user表数据并打印到控制台上 二.数据库数据准备 -- 创建用户表 create table user ( id int primary key auto_increment, username varchar(20) not null, birthday date, sex char(1) default '男', address varchar(50) ); -- 添加用户数据 insert into user values (null, '孙

  • Mybatis Plus select 实现只查询部分字段

    目录 Mybatis Plus select 查询部分字段 select 设置查询字段 MyBatis-Plus之select.delete 一.Mybatis-Plus之查询操作 1.查询操作常用API 2.分页查询 二.Mybatis-Plus之删除操作 1.物理删除操作常用API 2.逻辑删除 Mybatis Plus select 查询部分字段 Mybatis Plus select语句默认查询所有字段,如需要指定字段查询,则需使用 QueryWrapper的select方法. sele

随机推荐