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

删除时效果:

相关推荐
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...
2023-01-11
byte-buddy实现mybatis-plus动态mapper
掌握了教育,就掌握了国家——法国谚语 构造动态mapper部分代码如下: 123456789101112131415public static void buildMapper(Configuration configuration, Class<?> entityClass) { if (!(configuration instanceof MybatisConfiguration)) { throw new IllegalArgumentException("configuration must be MybatisConfiguration"); } ENTITY_MAPPER_CLASS_CACHE.computeIfAbsent(entityClass, k -> { Class<?> dynamicMapper = new ByteBuddy() .makeInterface(TypeDescript...
2022-12-12
开源ocr库tesseract
强者容易坚强,正如弱者容易软弱。——爱默生 分享一个开源的OCR库 文档链接:https://tesseract-ocr.github.io/ 源码地址:https://github.com/tesseract-ocr/tesseract 其包含了多种编程语言
2024-01-13
AtomicReference新jdk特性
对人生命最大的威胁是以车代步,而不是交通事故。——怀特 对应的单元测试: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818...
2022-08-15
aizuda-limiter
我只担心一件事,我怕我配不上自己所受的苦难。──俄国小说家陀思妥耶夫斯基 有人问我限流怎么做,单独抽出来说一下: 这里使用aizuda-limiter,文档:http://doc.aizuda.com/pages/9xd009/ example仓库:https://gitee.com/aizuda/aizuda-components-examples/blob/master/aizuda-limiter-example 首先引入: 12345<dependency> <groupId>com.aizuda</groupId> <artifactId>aizuda-limiter</artifactId> <version>1.0.0</version></dependency> 然后进行配置限流策略: 12345678910111213141516171819202122package com.aizuda.limiter.example;import com.aizuda...
2021-03-22
mybatis-plus代码生成器
一个能思想的人,才真是一个力量无边的人。——巴尔扎克 你是否对每天重复单表CRUD,改mapper.xml字段已经感到厌烦? 那么快点来整mybatis-plus代码生成器吧! 首先到官网 并且从github拉下来最新的代码~ 没错,最新的! https://github.com/baomidou/generator 当然,除了github,我们也可以选择gitee https://gitee.com/baomidou/generator 然后用尽你的全力去点clone——哦!中文是克隆 然后你可以喝杯水 虽然代码拉下来了,但我们还需要使用gradle加载依赖~ 此时我们可以看看README.md 这告诉了我们如何使用 我们按照说明新建一个启动类(当然如果你想新建一个测试类也可以,这不重要~) 如果你是新建的启动类,那么你需要去build.gradle里找到这些dependencies 注意,这里有两个build.gradle,我们需要选择这一个 然后把testImplementation改为implementation 你也可以改你需要的那个,例如mysql...

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