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

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

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

相关推荐
2020-11-18
使用stream流连接两个list
生命如同寓言,其价值不在于长短,而在于内容—— 塞涅卡 1234567List<Integer> integerList = Arrays.stream(new int[]{1, 2, 3}).boxed().collect(Collectors.toList());List<Integer> collect = Stream.concat(integerList.stream(), integerList.stream()).collect(Collectors.toList());collect.forEach(System.out::print);System.out.println();collect = Stream.of(integerList, integerList).flatMap(List::stream).collect(Collectors.toList());collect.forEach(System.out::print);System.out.println();
2021-12-17
Thymeleaf Error resolving template [favicon.ico]
每一个看似简单的社会现象其实都只露出了冰山一角。——林达 遇到这个报错,方案1: 在页面上添加: 1<link rel="icon" href="/static/favicon.ico"> 前提是你有icon并且放到了static下面 方案2: 写个过滤器,给它过滤掉 12345678910111213141516171819202122232425262728293031323334353637package com.ruben.simplescaffold.filter;import cn.hutool.core.lang.Opt;import cn.hutool.core.text.CharSequenceUtil;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import...
2021-10-05
Sa-Token
我相信过,如果怀着愉快的心情谈起悲伤的事情,悲伤就会烟消云散。——高尔基 介绍一个轻量级JWT权限认证框架Sa-Token 官方文档:https://sa-token.dev33.cn/doc/index.html#/ 今天直接试着用了下,感觉还不错,功能比之前的shaun强大 真香~
2020-11-12
spring获取bean的第三种方式
Had I not seen the Sun[我本可以忍受黑暗] I could have borne the shade[如果我不曾见过太阳] But Light a newer Wilderness[然而阳光已使我的荒凉] My Wilderness has made[成为更新的荒凉] ——Emily Dickinson 之前我们引用spring里的bean都是通过@Autowired或者@Resource注解获取 这里可以使用第三种方式 首先写个工具类 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455package com.ruben.utils;/** * @ClassName: SpringContextHolder * @Date: 2020/11/12 0012 20:40 * @Description: */import org.springframework.beans.BeansException;imp...
2024-04-11
mybatis-plus启动时自动执行sql脚本
不劳动,无所得。——富兰克林 源码地址: mybatis-plus-samples/mybatis-plus-sample-ddl-mysql/src/main/java/com/baomidou/mybatisplus/samples/ddl/mysql/MysqlDdl.java at master · baomidou/mybatis-plus-samples · GitHub 代码如下: 1234567891011121314151617181920212223242526272829package com.baomidou.mybatisplus.samples.ddl.mysql;import com.baomidou.mybatisplus.extension.ddl.SimpleDdl;import org.springframework.stereotype.Component;import java.util.Arrays;import ...
2024-01-12
promisesaplus.com
产生巨大后果的思想常常是朴素的。——列夫·托尔斯泰 今天刷到一个网站: https://promisesaplus.com/ 对应的组织: https://github.com/promises-aplus/ 对应有一个开源库用来检验是否符合Promise/A+规范: https://github.com/promises-aplus/promises-tests/ 安装: 1npm install promises-aplus-tests -g 然后添加CI脚本 12345678{ "devDependencies": { "promises-aplus-tests": "*" }, "scripts": { "test": "run-my-own-tests && promises-aplus-tests test/my-adapter" ...

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