逻辑删除与联合索引冲突处理
发表于|更新于
|浏览量:
早知今日读书是,悔作从前任侠非。——李欣
今天发现联合唯一索引和逻辑删除冲突了,导致我这边已删除的数据还具有唯一索引的约束
本来一开始是考虑要不要在删除前手动将数据清空一下,但这样感觉并不优雅
然后今天跟朋友探讨了下,决定使用datetime作为逻辑删除字段的类型,如果未删除,则字段为魔法值的固定时间,已删除,则设为删除时的时间
使用Mybatis-plus能够优雅实现:
将逻辑删除字段如下配置即可
1 | /** |
如果不是用注解,也可以配置全局,全局配置的方法我之前写过一篇博客,只要把对应的删除值修改一下即可
然后对应的数据库联合唯一索引,将其关联上
最后效果也是很棒:

可以看到查询自动带上了设置的日期
而我们进行删除时也成功设为NOW()

这里对应的代码实现com.baomidou.mybatisplus.core.metadata.TableInfo#formatLogicDeleteSql

相关推荐
2020-07-26
jenkins凭证管理
安装Credentials Binding插件 安装完了回设置页面,发现有了一个Manage Credentials 然后安装Git插件 安装完了去服务器里安装Git 1234#yum安装Gityum install git -y#安装完了用以下命令查看版本git --version 安装好了我们就开始拉代码吧~ 先去到我们的Manage Credentials里 点击全局 然后点击添加凭据 选择第一个Username with password 填写好Gitlab的用户名密码 到我们新建的项目test01的配置里 填写git仓库,然后选择凭据,如果凭据验证通过,就会是我这个样子,否则是报错 点击保存后,再点击左侧的Build Now按钮 这时候,jenkins就去拉代码了 默认是在/var/lib/jenkins/workspace/下 然后是ssh的免密登录秘钥类型 123456#先在服务器上生成秘钥(yao!)敲完按回车ssh-keygen -t rsa#然后进入目录cd /root/.ssh#cat公钥文件cat id_rsa.pub 复制,粘贴到...
2020-12-14
android进度条
为者败之,执者失之。——《道德经》 原生安卓实现的进度条 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566package com.example.uidemo.activity;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ProgressBar;import android.widget.SeekBar;import android.widget.TextView;import com.example.uidemo.R;import java.math.BigDecimal;import java.util.Locale;public class ProgressBarActivity...
2021-05-31
flatMap
君子成人之美,不成人之恶。小人反是。——《论语》 在Stream中有这么一个函数 它和map不一样的是,map你输入多少个,输出就是多少个 例如我要生成一个集合,装着26个小写字母和26个大写字母 用flatMap可以一行实现 12List<String> abc = Stream.iterate('a', i -> ++i).map(String::valueOf).limit(26).flatMap(i -> Stream.concat(Stream.of(i), Stream.of(i).map(String::toUpperCase))).sorted().collect(Collectors.toList());System.out.println(abc); 马上这时候就有人跳出来说,我不用flatMap还不是可以!!!不信你看 12List<Character> ab = Stream.iterate('A', i -> ++i).limit(58).filter(i -&g...
2021-01-29
正则工具类
学不可以已。——《荀子》 代码 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146package com.ruben.utils;import org.apache.commons.lang3.StringUtils;import java.util.regex.Pattern;/** * 通过正则表达判断是否正确的手机号,固定电话,身份证,邮箱等. * <p> *...
2025-09-10
Stirling-PDF
卑鄙是卑鄙者的通行证,高尚是高尚者的墓志铭。——北岛 https://github.com/Stirling-Tools/Stirling-PDF Stirling-PDF:本地部署的全能PDF工具箱,开源PDF神器体验在数字办公和文件处理的世界里,PDF格式可谓无处不在。但你是否曾为PDF拆分、合并、加密、转换等“杂事”头疼?有没有想过,有一款完全本地部署、功能极其丰富且开源免费的PDF管理平台帮你一站式解决所有问题?今天就带你走进 Stirling-PDF —— 这款风靡全球的开源PDF神器。 项目定位:本地部署,安全高效,极致自由Stirling-PDF 的定位非常清晰:本地部署的网页PDF操作平台。你可以在自己的电脑或服务器上,通过Web界面对PDF文件进行各种操作,所有文件只在本地处理,最大程度保障数据安全和隐私。 “#1 Locally hosted web application that allows you to perform various operations on PDF files” 支持 Docker 极速部署,跨平台兼容,无论你是个人、企业...
2021-03-15
seata实现分布式事务
尽管世界和人生是坏透了,其中却有一件东西永远是好,那便是青春——显克维奇 首先是下载seata1.4.1 然后解压 先修改conf下的registry.conf 把type改为nacos 进入bin 打开控制台运行seata-server.bat 然后在项目中引入依赖,记得需要分布式式事务的服务都要配置 12345<!-- seata 分布式事务 --><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-seata</artifactId></dependency> 配置类 1234567891011121314151617181920212223242526272829303132333435package com.ruben.config;import com.alibaba.druid.pool.DruidDataSource;im...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog