深入理解@TableField注解的使用-MybatisPlus教程

@TableField注解是MyBatis-Plus框架提供的一个功能,用于指定实体类属性与数据库表列的映射关系。当实体类的属性名称和数据库表的列名称不一致,或者需要指定一些特殊的处理逻辑时,可以使用@TableField注解。

以下是@TableField注解的一些常见用法:

目录

1.指定属性与列的映射:

2.表示属性不存在于数据库表中:

3.指定自动填充的逻辑:

4.指定字段选择性更新:

5.指定字段的数据库排序:

6.指定字段的读写策略:


1.指定属性与列的映射

当实体类中的属性名称与数据库表中的列名称不一致时,可以使用value属性指定数据库表中的列名。

public class UserEntity {private String userId;private String userName;@TableField(value = "user_name")private String nickName;// getters and setters
}

2.表示属性不存在于数据库表中

如果实体类中的某个属性不需要映射到数据库表的列,可以使用exist = false标记。

public class UserEntity {private String id;private String name;@TableField(exist = false)private String fullName; // 这个属性不会映射到数据库表中// getters and setters
}

3.指定自动填充的逻辑

对于数据库自动填充的字段(如创建时间、更新时间等),可以使用fill属性指定填充策略。

public class UserEntity {private String id;private String name;@TableField(fill = FieldFill.INSERT)private Date createTime; // 插入时自动填充@TableField(fill = FieldFill.INSERT_UPDATE)private Date updateTime; // 插入和更新时自动填充// getters and setters
}

 

4.指定字段选择性更新

使用updateStrategy属性,可以指定字段的更新策略,例如仅当字段值为非空时才更新。

public class UserEntity {private String id;private String name;@TableField(updateStrategy = FieldStrategy.NOT_EMPTY)private String nickname; // 只有当nickname非空时,才会更新这个字段// getters and setters
}

5.指定字段的数据库排序

使用select属性,可以指定字段在选择时的排序方式。

public class UserEntity {private String id;private String name;@TableField(select = "EQ") // 指定选择时的等值匹配private String status;// getters and setters
}

6.指定字段的读写策略

使用writeStrategy属性,可以指定字段的读写策略,例如仅在插入时写入数据库。

public class UserEntity {private String id;private String name;@TableField(writeStrategy = FieldWriteStrategy.INSERT)private String initialPassword; // 仅在插入时写入数据库// getters and setters
}

请注意,@TableField注解的使用需要与MyBatis-Plus框架的其他配置和注解一起工作,以确保实体类和数据库表之间的正确映射。此外,注解的具体使用可能会根据MyBatis-Plus的版本和项目配置有所不同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/844046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cfa三级大神复习经验分享系列(二)

嫌文章太长,我给大家一个备考简略总结,看完可以关闭。资料:note真题(三级不用)基础/强化班 note看两遍例题动手做两遍, 真题动手做三遍 其他,没有了,做好这些 高分pass 一&#xff…

【云原生】kubernetes中Configmap原理解析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

236. 二叉树的最近公共祖先(C++)

文章目录 前言一、题目介绍二、解决方案三、优化总结 前言 在本篇文章中我们将会讲解二叉树中极为经典的题目236. 二叉树的最近公共祖先 一、题目介绍 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的…

如何借VR之手,让展厅互动更精彩?

VR虚拟现实技术以其卓越的沉浸式体验为特点,引领用户踏入一个全新的虚拟世界,正因如此,它开始被广泛应用于展厅、商业等多个领域。那么,今天,让我们就来了解一下这种技术是如何为展厅带来精彩互动体验的吧!…

日常使用工具(截图,笔记,一键启动)

目录 一,截图 Snipaste 二.笔记 Joplin 三.翻译 四.自动启动软件 这篇记录一下工作中用的很顺手的工具. 一,截图 Snipaste 官网:Snipaste - 截图 贴图 下面是官方手册. 使用 我都是直接F1 就会出现选择框,随意拖动大小,选择下方工具栏,相应位置, 二.笔记 Joplin 官网:…

el-table表格实现鼠标拖动而左右滑动

场景描述: 表格样式较为复杂,10条数据超出整个屏幕的高度,因而导致无法快速拖动滚动条,所以提出需要在表格内容区拖动鼠标,从而实现无需滚动到底部就可以左右拖动表格内容的效果。 具体实现: 实现的方式…

上海云管平台怎么样?客服电话多少?

云计算已经成为了企业数字化转型的重要一部分,而在上海,云管平台发展更是大势所趋。这不不少小伙伴在问,上海云管平台怎么样?客服电话多少? 上海云管平台怎么样?客服电话多少? 【回答】&#…

[排序算法]4. 图解堆排序及其代码实现

先来看看什么是堆? 堆是一种图的树形结构,被用于实现“优先队列”(priority queues) 注:优先队列是一种数据结构,可以自由添加数据,但取出数据时要从最小值开始按顺序取出。 在堆的树形结构中&#xff0c…

vscode的使用 ubuntu入门之二十二

高亮标识符,变量或者函数可以用 rainbow-highlighter 这个插件 Press shiftaltz, and variables curser is on will be highlighted. Press the same command again to remove highlights. Press shiftalta to remove all highlights. 参考: 在VSCode…

【台阶问题】

目录 问题&#xff1a; 思路&#xff1a; 回溯-分支限界法 知识点 目标函数&#xff08;分支结束的情况&#xff09;: n0 约束函数&#xff08;截断不合理的分支&#xff09;: num < 2 、 i > n-i && num 0 限界函数&#xff08;阶段不最优的分支&#xf…

开发问题合集(待补充)

docker 学习文档 ollama 官网 streamlit 官方文档

通过伪造NPU设备,让AscendSpeed在没有安装torch_npu的环境中跑起来

通过伪造NPU设备,让AscendSpeed在没有安装torch_npu的环境中跑起来 代码输出 背景: 我想在GPU上运行AscendSpeed框架,因为没有torch_npu、deepspeed_npu,又不想一个个注释掉 方法: 1.本文本通过创建一个FakeDevice 类来伪造 NPU&#xff08;Neural Processing Unit&#xff0…

C语言动态内存分配

有些情况下需要开辟的空间大小在程序运行过程中才能确定下来&#xff0c;而常规的在栈区开辟空间是在编译时就分配好了内存&#xff0c;并且内存大小不能改变&#xff0c;因此需要引入动态内存分配&#xff0c;动态内存分配的内存是在堆区&#xff0c;需要由用户手动开辟&#…

共享内存的分享

共享内存是一种进程间通信&#xff08;IPC&#xff0c;Inter-Process Communication&#xff09;的机制&#xff0c;用于在不同进程之间共享数据。它允许多个进程访问同一个内存段&#xff0c;从而使数据传递更加高效。共享内存的主要作用包括&#xff1a; 1. 高效数据交换 共…

java: 警告: 源发行版 8 需要目标发行版 8

前言 该文章中项目背景是&#xff1a;IDEA与设置的版本与实际电脑配置的不一致。也就是说只改了这个团队项目的JDK版本&#xff0c;IDEA上其它项目JDK版本未更改。 提示&#xff1a; IDEA警告&#xff1a;javaX&#xff1a;警告&#xff1a;源发行版 需要目标发行版 简略步…

.NET 某和OA办公系统全局绕过漏洞分析

转自先知社区 作者&#xff1a;dot.Net安全矩阵 原文链接&#xff1a;.NET 某和OA办公系统全局绕过漏洞分析 - 先知社区 0x01 前言 某和OA协同办公管理系统C6软件共有20多个应用模块&#xff0c;160多个应用子模块&#xff0c;从功能型的协同办公平台上升到管理型协同管理平…

qt 笔记

外部进程嵌入到Qt进程界面 将外部进程嵌入到 Qt 进程的界面中是一项复杂的任务&#xff0c;因为它涉及到操作系统特定的细节。在不同的操作系统上&#xff0c;这种嵌入方式可能会有所不同。以下是一些可能的方法和步骤&#xff0c;针对常见操作系统&#xff08;如 Windows 和 …

JS-06 原型式继承借用构造函数实现继承

目录 1 原型式继承 场景 前置问题 实现方法 2 借用构造函数实现继承 前置问题 错误的实现方式 正确的实现方式 1 原型式继承 场景 a、创建一个纯洁的对象&#xff1a;对象在控制台打印什么属性都没有 b、创建一个继承自某个父对象的子对象 前置问题 一个对象里有很…

基于稀疏辅助信号平滑的心电信号降噪方法(Matlab R2021B)

基于形态成分分析理论&#xff08;MCA&#xff09;的稀疏辅助信号分解方法是由信号的形态多样性来分解信号中添加性的混合信号成分&#xff0c;它最早被应用在图像处理领域&#xff0c;后来被引入到一维信号的处理中。 在基于MCA稀疏辅助的信号分析模型中&#xff0c;总变差方…

Python面试宝典:Python中与爬虫基础以及数据抓取和解析相关的面试笔试题(1000加面试笔试题助你轻松捕获大厂Offer)

Python面试宝典:1000加python面试题助你轻松捕获大厂Offer【第二部分:Python高级特性:第十七章:Python爬虫:第一节:爬虫基础以及数据抓取和解析】 第十七章:Python爬虫第一节:爬虫基础以及数据抓取和解析1. HTTP协议2. HTML/CSS/JavaScript3. 解析库4. Web开发者工具5.…