逻辑删除与联合索引冲突处理(二)
发表于|更新于
|浏览量:
一星陨落,黯淡不了星空灿烂;一花凋零,荒芜不了整个春天。——巴尔扎克
之前写过一篇,用时间实现,今天提供另一种思路
我们的逻辑删除字段,如果和联合唯一索引同时使用,还可以使用下面这一种方式:
如果未删除,使用魔法值
如果已删除,使用NULL
因为mybatisPlus官方文档也提到了:
字段类型支持说明:
- 支持所有数据类型(推荐使用
Integer,Boolean,LocalDateTime)- 如果数据库字段使用
datetime,逻辑未删除值和已删除值支持配置为字符串null,另一个值支持配置为函数来获取值如now()
之前看源码,发现它也是使用替换字符串的方式去做,所以是支持NULL的
并且我们的null并不受唯一索引约束
那我们这里就可以直接使用如下配置:
1 | @TableLogic(delval = StringPool.NULL, value = "existed") |
效果:

删除时效果:

相关推荐
2024-08-29
jps、jstack查看java堆栈信息
宿命论是那些缺乏意志力的弱者的借口。——罗曼·罗兰 jps查看进程信息命令如下: 12345678Github-Id-VampireAchao:shenyu achao$ jps -l27312 jdk.jcmd/sun.tools.jps.Jps88929 27268 org.jetbrains.jps.cmdline.Launcher27269 org.apache.shenyu.examples.http.ShenyuTestSwaggerApplication19815 com.intellij.idea.Main27175 org.jetbrains.idea.maven.server.RemoteMavenServer3624237 org.sonarsource.sonarlint.core.backend.cli.SonarLintServerCli 然后用jstack查看堆栈信息: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484...
2024-04-05
org.apache.ibatis.session.AutoMappingUnknownColumnBehavior
我只说从今往后,不说今日以前。——陈忠实《白鹿原》 在处理数据库和Java对象之间的映射时,MyBatis提供了一种高度灵活的机制来处理那些在结果集中存在但在Java对象中没有相应属性的未知列。这种机制通过AutoMappingUnknownColumnBehavior枚举来实现,它允许开发者定义对这些未知列的处理策略。 AutoMappingUnknownColumnBehavior的三种策略 NONE: 这是默认策略,MyBatis将忽略所有未知的列,不会对其进行任何操作或抛出异常。 WARNING: 当选择这个策略时,MyBatis会在控制台或日志文件中记录一个警告消息,指出存在未知列,但仍然会继续映射已知列。 FAILING: 选择这个策略时,一旦遇到未知列,MyBatis将抛出异常并终止映射过程。这对于需要确保所有列都必须被正确映射的场景非常有用。 应用场景 开发和测试阶段: 你可能会倾向于使用WARNING策略,以便及时发现数据库表结构的任何更改,这些更改可能会影响应用程序的行为。 生产环境: 在生产环境中,FAILING策略可以帮助你确保数据完整性,任何未映射...
2022-06-04
quartz连接池问题
心脏是一座有两间卧室的房子,一间住着痛苦,另一间住着欢乐,人不能笑得太响。否则笑声会吵醒隔壁房间的痛苦。——卡夫卡 之前写了篇quartz博客:https://VampireAchao.github.io/2021/01/24/quartz/ 这两天通过druid监控发现一些连接一直没有释放,以为是出现了链接池泄露 最后排查发现,quartz没有使用druid的连接池,因此导致连接池经常满 把这段配置注掉即可
2022-12-17
获取lambda代理
伯乐不可欺以马,君子不可欺以人——荀子 代码如下: 123MethodHandles.Lookup lookup = MethodHandles.lookup(); MethodHandle getR = lookup.findVirtual(B.class, "getR", MethodType.methodType(Object.class)); SerFunc<Object, B> lambda = MethodHandleProxies.asInterfaceInstance(SerFunc.class, getR); 此处的lambda代理对象同样可以执行lambda对应的方法
2020-08-08
迁移spring项目到springboot
嗨呀!今天是周六没上班,来把我们的spring+springmvc项目迁移到springboot吧! 首先创建springboot项目 然后一直下一步,复制我的pom 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/...
2023-07-21
对接chatGPT
人不能制情欲,则被情欲所制。——贺拉斯 今天使用forest对接chatGPT https://forest.dtflyx.com/ chatGPT的api文档:https://platform.openai.com/docs/api-reference/making-requests 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263import com.dtflys.forest.Forest;import com.dtflys.forest.http.ForestProxy;import lombok.extern.slf4j.Slf4j;import lombok.val;import org.dromara.hutool.core.text.StrUtil;import org.dromara.streamquery.stream.core.collection.Lists;impor...

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