@TableLogic 这个注解的作用

news/2024/3/3 23:32:26

在这里插入图片描述
@TableLogic 是 MyBatis-Plus(一个 MyBatis 的增强工具)提供的一个注解,用于实现逻辑删除功能。

逻辑删除并不是真正从数据库中删除记录,而是通过在数据库表中设置一个标记字段(通常是一个状态字段,如 is_deleted、status 等)来表示这条记录是否被删除。当查询、更新或删除数据时,MyBatis-Plus 会自动根据这个标记字段来过滤或更新数据。

当你在一个实体类的属性上使用 @TableLogic 注解时,MyBatis-Plus 会将这个属性识别为逻辑删除字段。你可以在 @TableLogic 注解中指定逻辑删除的值和未删除的值。

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;@TableName("user")
public class User {private Long id;private String name;@TableLogicprivate Integer deleted;
}

在上面的例子中,deleted 字段被标记为逻辑删除字段。当你调用删除方法时,MyBatis-Plus 不会真的从数据库中删除对应的记录,而是将 deleted 字段的值更新为逻辑删除值(默认是 1)。当你查询数据时,MyBatis-Plus 会自动添加条件 deleted=0 来过滤掉已经被逻辑删除的记录。

你还可以自定义逻辑删除和未删除的值:

@TableLogic(value = "0", delval = "1")
private Integer deleted;

在这个例子中,未删除的记录 deleted 字段的值为 “0”,逻辑删除的记录 deleted 字段的值为 “1”。

使用逻辑删除功能可以使数据恢复变得容易,因为数据并没有真的被删除,但也要注意,这可能会导致数据库中存储了大量的无用数据,影响查询性能。在某些情况下,你可能需要定期清理这些逻辑删除的记录。


http://www.ppmy.cn/news/1182262.html

相关文章

数据结构介绍与时间、空间复杂度

数据结构介绍 什么是数据结构?什么是算法?数据结构和算法的重要性 数据结构定义 数据结构是计算机科学中研究数据组织、存储和管理的一门学科。数据结构描述了数据对象之间的关系,以及对数据对象进行操作的方法和规则。 常见的数据结构 数…

【VR开发】【Unity】【VRTK】1-无代码VRVR开发介绍

本篇开始精简讲解VRTK相关的知识。 VRTK是基于Unity的一套提供无代码VR开发的插件,这套插件开源,可商用,集合了目前可能的VR体验组件,可以让不会C#编程但想要开发VR体验的人在不写一行代码的前提下开发出心仪的VR作品。 这套组件问世后也很受欢迎,目前已经进化到了第四代…

leetcode_1339. 分裂二叉树的最大乘积

题目链接:1339. 分裂二叉树的最大乘积 DFS两次即可 #define MAX(a, b) ((a) > (b) ? (a) : (b)) #define MOD ((int)pow(10, 9) 7)static void post_order_traversal(struct TreeNode* node) {if (!node) {return;}post_order_traversal(node->left);post…

【C++项目】高并发内存池第七讲性能分析

目录 1.测试代码2.代码介绍3.运行结结果 1.测试代码 #include"ConcurrentAlloc.h" #include"ObjectPool.h" #include"Common.h" void BenchmarkMalloc(size_t ntimes, size_t nworks, size_t rounds) {std::vector<std::thread> vthread(…

Android APP 隐藏系统软键盘的方法

1.场景描述&#xff1a; 1) APP项目中经常会开发自定义软键盘&#xff1b;同时在使用EditText时&#xff0c;也会常常遇到自动弹出系统自带的软键盘&#xff0c;与自定义的软键盘产生冲突的情况&#xff1b;此时需要禁止EditText自动弹出系统软键盘&#xff0c;从而使自定义的…

OpenAI 组建安全 AGI 新团队!应对AI“潘多拉魔盒”

夕小瑶科技说 原创 作者 | 小戏 一旦谈及未来 AI&#xff0c;除了天马行空的科幻畅想&#xff0c;不可避免的也有未来 AI 时代的末日预言。从 AI 武器化到 AI 欺骗&#xff0c;从邪恶 AI 到 AI 掌权&#xff0c;人工智能&#xff0c;尤其是通用人工智能的风险始终都清清楚楚的…

Redis常识

文章目录 缓存的三个风险数据结构淘汰策略 和 过期删除策略过期删除淘汰 如何理解单线程redis特性复制gossip协议事务&#xff08;和mysql不同&#xff0c;是不严格的事务 &#xff09;集群&#xff08;高可用&#xff09;管道持久化 缓存的三个风险 缓存雪崩&#xff08;缓存…

requirements.txt用法你真的清楚吗

很多Python开源项目在环境搭建教程中都会提供requirements.txt&#xff0c;所以有必要搞清楚这到底有什么作用以及一些细节须知 插播&#xff0c;更多文字总结指南实用工具科技前沿动态第一时间更新在公粽号【啥都会一点的研究生】 1&#xff09;如何安装requirements.txt中的…

Oracle RU 19.21及 datapatch -sanity_checks

参考文档&#xff1a; Oracle Database Patch 35643107 - Database Release Update 19.21.0.0.231017 Datapatch User Guide (Doc ID 2680521.1) datapatch fails with ORA-04061/ORA-4065/ORA-04045/ORA-04067 due to Golden Gate triggers. (Doc ID 2301658.1) 在19.21的…

appium操控微信小程序的坑

appium操控微信小程序的坑 打不开启动页面driver的context只有NATIVE_APP小程序上元素找不到 我打算使用appium操控微信小程序&#xff0c;只要能够获取到小程序的页面元素就算成功。下面都是我遇到的问题。 打不开启动页面 以下是我的appium的配置参数和代码&#xff1a; de…

Linux学习第23天:Linux中断驱动开发(二): 突如其来

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 三、驱动程序开发 采用中断的方式&#xff0c;触发开发板上的KEY0按键。采用定时器消抖。应用程序采集按键值&#xff0c;通过终端打印出来。 1.修改设备树文件…

oracle 里常用的一些 create insert update table

1、获得数据库里某个指定的库 SELECT COUNT(*) FROM ALL_TABLES ut WHERE ut.OWNERTJFX AND ut.TABLE_NAME CUR_TIME_BILL; 2、创建一个表&#xff0c;里面的数据可以从一个已存在的表里转移过来 CREATE TABLE temptable AS SELECT * FROM old_tbName //使用现有的表创建一…

国际腾讯云直播推流配置教程!

云直播的服务本质是一个广播的过程&#xff0c;类似于电视台的直播节目通过有线电视网发送给千家万户。为了完成这个过程&#xff0c;云直播需要有采集和推流设备&#xff08;类似摄像头&#xff09;、云直播服务&#xff08;类似电视台的有线电视网&#xff09;和播放设备&…

python---for循环结构中的else结构(是同级关系)

为什么需要在for循环中添加else结构 循环可以和else配合使用&#xff0c; else下方缩进的代码指的是当循环正常结束之后要执行的代码。 强调&#xff1a; 循环 正常结束&#xff0c;else之后要执行的代码。 非正常结束&#xff0c;其else中的代码是不会执行的。&#xf…

python裁剪图片

我原本想找到一个小一点的彩色人脸数据集&#xff0c;但是都没有找到合适的 但是我找到了一个人脸数据集的封面 于是我把这两个图片裁开&#xff0c;得到了6464张彩色人脸照片 from PIL import Image# 打开大图 big_image Image.open(female.jpg) # 获取大图的宽度和高度 wid…

前端和后端 优化

1.前端资源优化 1.1 html结构优化 保证简洁、清晰的html结构&#xff0c;减少或避免多余的html标签 使用HTML5的web语义化标签&#xff0c;结构清晰且利于seo css文件在head中引入&#xff0c;js文件放在body底部引入&#xff0c;这样做可以防止阻塞。另外如果有需要提前加载的…

【信创】银河麒麟V10 安装postgis

安装postGis步骤 1、安装 proj4 #tar -zxvf proj-4.8.0.tar.gz #cd proj-4.8.0 #mkdir -p /opt/proj-4.8.0 #./configure --prefix=/opt/proj-4.8.0 #make && make install #vi /etc/ld.so.conf.d/proj-4.8.0.conf #ldconfig 2、安装 geos #tar -xjf geos-3.6.1.tar.b…

基础课12——数据采集

数据采集是指从传感器和其它待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,送到上位机中进行分析处理。数据采集系统是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。采集一般是采样方式,即隔一定时间(称采样周期)对同…

Node切换版本

以非安转版本方式安装Node&#xff0c;经常会需要进行Node的版本切换。 官方的做法是&#xff1a;nvm use version。 但是这种方法经常会失败。如下&#xff1a; 其实nvm命令的本质就是给当前node版本添加一个快捷方式&#xff08;或软连接&#xff09;&#xff0c;因为环境变…

程序模拟(Concurrency Simulator, ACM/ICPC World Finals 1991, UVa210)rust解法

你的任务是模拟n个程序&#xff08;按输入顺序编号为1&#xff5e;n&#xff09;的并行执行。每个程序包含不超过25条语句&#xff0c;格式一共有5种&#xff1a;var constant&#xff08;赋值&#xff09;&#xff1b;print var&#xff08;打印&#xff09;&#xff1b;lock…
最新文章