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

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

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

相关推荐
2025-04-12
MinecraftForge
毋为已消逝之年华叹息,须正视匆匆溜走的时光。 ——欧洲谚语 什么是 MinecraftForge?MinecraftForge 是一个为 Minecraft 提供的开源模组开发框架,它是 Minecraft 社区中最受欢迎的模组开发工具之一。通过 Forge,开发者可以轻松创建和加载模组(Mods),并扩展 Minecraft 的功能。Forge 的生态系统支持数千个模组,是 Minecraft 游戏创新的核心平台。 核心特点 模组兼容性: Forge 提供了一个标准化的接口,让不同的模组可以无缝工作,减少冲突。 支持多个模组同时运行,方便玩家自由搭配。 开发工具: 提供全面的 API,方便开发者调用 Minecraft 的核心功能。 ForgeGradle:一个集成了 MinecraftForge 项目的 Gradle 插件,用于简化模组开发构建流程。 跨版本支持: Forge 会随着 Minecraft 的更新而更新,支持多个 Minecraft 版本(如 1.12、1.16、1.18 等)。 强大的社区: Forge 拥有一个庞大的开发者和玩家社区...
2022-05-29
stream-query
“春非我春,夏非我夏,秋非我秋,冬非我冬。”——汉乐府《日出入》 弄了好几天,终于成功上传到maven中央仓库了 使用方式: 12345678910<dependency> <groupId>io.github.vampireachao</groupId> <artifactId>stream-plugin-mybatis-plus</artifactId> <version>1.0.5</version></dependency><dependency> <groupId>io.github.vampireachao</groupId> <artifactId>stream-core</artifactId> <version>1.0.5</version></dependency> 引入这两个依赖,然后就可以使用啦 测试用例 12345678...
2022-02-26
Files.delete
终点线只是一个记号而已,其实并没有什么意义,关键是这一路你是如何走的。——村上春树 在java中我们除了用这种方式删除文件: 12345678File file = new File("D:\\file\\projects\\img-comparison-demo\\target\\generated-sources");if (file.exists()) { try { boolean delete = file.delete(); } catch (Exception e) { e.printStackTrace(); }} 还可以使用Files工具类: 12345try { boolean delete = Files.deleteIfExists(Paths.get("D:\\file\\projects\\img-comparison-demo\\target\\generated-sources"))...
2021-01-15
maven依赖的小坑
说谎话的人所得到的,就只即使觉说直话也没有人相信。——伊索 今天引入spire.doc依赖时遇到一个小坑 提示Could not find artifact e-iceblue:spire.doc.free:pom:3.9.0 in aliyunmaven (https://maven.aliyun.com/repository/public) 可是我明明已经配置了 1234<repository> <id>com.e-iceblue</id> <url>http://repo.e-iceblue.cn/repository/maven-public/</url></repository> 后来发现原来是我maven的配置文件settings.xml是这么写的 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162...
2024-03-20
macos升级14.4后idea运行java程序崩溃
不去读书就没有真正的教养,同时也不可能有什么鉴别力。——赫尔芩 对应网址 https://bugs.java.com/bugdatabase/view_bug?bug_id=8327860 加点jvm参数试试能不能解决 开下日志 1-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log 禁用JIT编译器 1-Djava.compiler=NONE 换个GC器试试 1-XX:+UseG1GC
2020-11-03
使用@Select注解写<foreach>
智慧是宝石,如果用谦虚镶边,就会更加灿烂夺目。——高尔基 只需要加<sceipt>标签就可以了 1234567@Select({"<script>" + "select * from user where id in " + "<foreach item = 'id' index = 'index' collection = 'list' open='(' separator=',' close=')'>" + "#{id}" + "</foreach>" + "</script>"})List<User> selectU...

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