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

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

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

相关推荐
2022-03-08
注解支持@Alias同步值
你最可爱,我说时来不及思索。但思索之后,还是这样说。——普希金《你多么可爱》 首先是这个issue:希望AnnotationUtil增加对@AliasFor的支持 然后我就提交了这个PR:提供AnnotationUtil#getAnnotationAlias,为@Alias注解做别名支持的适配 代码如下(找不到方法可以去看hutool源码): 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import cn.hutool.core.exceptions.UtilException;import cn.hutool.core.util.ArrayUtil;import cn.hutool.core.util.ObjectUtil;import cn.hutool.core.util.ReflectUtil;import cn.hutool.core.util.StrUtil;import java.lang.annotation.Ann...
2024-01-25
Azkaban
坦诚是最明智的策略。——富兰克林 分享一个工作流框架 https://github.com/azkaban/azkaban 官方文档 https://azkaban.github.io/ Azkaban documentation! — Azkaban documentation Azkaban是一个分布式工作流管理器,在LinkedIn上实现,以解决Hadoop作业依赖性的问题。我们的作业需要按顺序运行,从 ETL 作业到数据分析产品。 Features 特征 与任何版本的 Hadoop 兼容 易于使用的 Web UI 简单的 Web 和 http 工作流上传 项目工作区 工作流的调度 模块化和可插件化 身份验证和授权 跟踪用户操作 有关失败和成功的电子邮件警报 SLA告警和自动杀伤 重试失败的作业 阿兹卡班的设计主要考虑了可用性。它已经在LinkedIn上运行了好几年,并驱动了他们的许多Hadoop和数据仓库流程。
2023-05-30
mp方法注入支持typeHandler
画虎画皮难画骨,知人知面不知心。——佚名 今天处理了mp中自定义注入方法的typeHandler逻辑,只需要 #{et.name,typeHandler=org.dromara.streamquery.stream.plugin.mybatisplus.JsonFieldHandlerTest$JsonFieldHandler}即可直接指定typeHandler 123456789101112131415161718<script> <if test="list != null and !list.isEmpty()">UPDATE user_info SET name=case id<foreach collection="list" item="et"><choose><when test="et != null and et.name != null">when #{et.id} then #{e...
2021-02-07
mybatis-plus两个limit坑
要成就大事业就要趁青年时代。 ——歌德 前两天遇到一个坑,使用mybatis-plus的时候,SQL出现两个LIMIT 经过查阅官方文档才发现,这是因为配置了两个分页拦截器 经过检查,果然发现两个 然后我去掉一个后就解决了 经过这次BUG,我总结出用别人的框架/组件,一定要多阅读官方文档,这样才不会踩了坑也不知道怎么办
2021-03-20
zipkin
懒惰——它是一种对待劳动态度的特殊作风。它以难以卷入工作而易于离开工作为其特点。 —— 杰普莉茨卡娅 引入依赖 123456<!-- zipkin+sleuth 链路追踪+可视化 --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> <version>2.2.0.RELEASE</version></dependency> 注意要把spring-boot-starter-data-redis指定为jedis 123456789101112131415<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --><dependen...
2023-03-19
关联更新封装(三)
太如意的生活便是平凡的生活,太容易获得的东西,便不是贵重的东西。——茅盾 今天是另外一种类型的关联更新封装 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768public static <T, K extends Comparable<? super K> & Serializable, S> BaseDbBO<S> saveSub(SubBO<T, K, S> bo) { val subIds = Steam.of(bo.getMainList()) .flat(data -> Steam.of(bo.getSubIdGetters()).map(f -> f.apply(data))) .nonNull().toList(); val su...

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