当前位置: 首页 > news >正文

@TableLogic注解说明,以及对增删改查的影响

今天遇到一个问题:使用mybatis的时候,更新删除字段无效,我的写法是:

user.setIsDelete(1);

userService.updateById(user);

这样操作之后,发现数据库并没有更新删除字段!!!

 经过查找,才发现是因为@TableLogic这个注解的原因,下边详细介绍一下这个注解。

@TableLogic注解是逻辑删除,并不会物理删除数据

效果:在字段上加上这个注解再执行BaseMapper的删除方法时,删除方法会变成修改

@TableLogic(value=“原值”,delval=“修改值”)
注解参数:
    value = “” 未删除的值,默认值为0
    delval = “” 删除后的值,默认值为1
    
使用方法:
1.在实体类属性上加@TableLogic(value=“0”,delval=“1”)

    @TableLogic(value="0",delval="1")private String isdelete;

2.删:调用BaseMapper的deleteById(id)或者调用IService的removeById(id),走Update方法

效果:
    没有@TableLogic注解调用deleteById/removeById,直接删除数据。
        SQL:delete from xxxtable where id = 1
    有注解走Update方法
        SQL:Update xxxtable  set  is_delete = 1 where id = 1  

3.改:使用了@TableLogic注解,调用update方法,是不会将该字段放入修改字段中,而是默认添加在where条件字段中。即使你给dataStatus赋值也不能修改字段。
    SQL: Update xxxtable  set 字段1 = 值1,字段2 = 值2 where id = 1 and is_delete = 0

4.查:使用了@TableLogic注解,使用queryWapper等查询时,没有筛选是否删除的条件,但是sql还是自动加上了条件:SELECT * from xxxtable  where is_delete =0

相关文章:

  • sqlite3简单使用
  • 【LearnOpenGL基础入门——3】绘制纯色三角形
  • ReentrantLock实现公平锁,可中断,条件变量,可重入案例
  • 跟我学c++中级篇——模板的调试
  • string类的总结
  • springboot jar包 无法读取静态资源文件
  • py 异步
  • 【2】SM2验签工具和RSA验签工具
  • EasyExcel导入从第几行开始
  • Linux的几个常用基本指令
  • 对象和数据结构
  • 【AI视野·今日Robot 机器人论文速览 第六十二期】Wed, 25 Oct 2023
  • debian 修改镜像源为阿里云【详细步骤】
  • Leetcode 【2342. 数位和相等数对的最大和】
  • 【Spring】AOP进阶-JoinPoint和ProceedingJoinPoint详解
  • 时间复杂度分析经典问题——最大子序列和
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 【刷算法】求1+2+3+...+n
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • css布局,左右固定中间自适应实现
  • DataBase in Android
  • ES6系统学习----从Apollo Client看解构赋值
  • JavaScript对象详解
  • Js基础知识(四) - js运行原理与机制
  • Puppeteer:浏览器控制器
  • Spark RDD学习: aggregate函数
  • Vue 动态创建 component
  • 第2章 网络文档
  • 检测对象或数组
  • 每天一个设计模式之命令模式
  • 那些年我们用过的显示性能指标
  • 排序(1):冒泡排序
  • 前端面试题总结
  • 前嗅ForeSpider中数据浏览界面介绍
  • 深入浏览器事件循环的本质
  • 我感觉这是史上最牛的防sql注入方法类
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 积累各种好的链接
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #QT(一种朴素的计算器实现方法)
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (待修改)PyG安装步骤
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (七)理解angular中的module和injector,即依赖注入
  • (强烈推荐)移动端音视频从零到上手(下)
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (一)Neo4j下载安装以及初次使用
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .net core 依赖注入的基本用发
  • .net专家(高海东的专栏)
  • .vue文件怎么使用_我在项目中是这样配置Vue的