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

删除时效果:

相关推荐
2020-08-13
fastjson基本使用
alibaba的fastjson真香啊 首先是依赖 123456<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.73</version></dependency> 这里列举点简单的应用 首先是对象转JSON 1234567Map<String, Object> map = new HashMap<>(1 << 3);map.put("data", "操作成功!");map.put("code", 200);map.put("success", true);map.put("...
2021-02-18
RabbitMQ安装
万物各得其和以生,各得其养以成。一一《荀子》 介绍使用异步多线程方案会导致CPU竞争强烈,故使用MQ 使用MQ能够大大降低项目耦合 名词: Producer:生产者,发消息的 Consumer:消费者,收消息干活的 Broker:MQ本体 Topic:主题 Queue:消息队列,先进先出 Message:消息报文(内容,一般为json) 单机版本MQ原理 12345678910111213141516171819202122232425262728293031323334353637383940414243package com.ruben.mq;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import java.util.Optional;import java.util.UUID;import java.util.concurrent.LinkedBlockingDeque;/** * @ClassName: RubenThreadMQ * @Description: 我还...
2023-03-06
mybatis中@Many
吃饭先喝汤,不用请药方——佚名 之前写了mybatis中@One 今天写个@Many的 首先还是代码: 1234567891011121314151617181920212223package com.ruben.mapper;import com.ruben.pojo.po.UserInfo;import org.apache.ibatis.annotations.*;import org.apache.ibatis.cursor.Cursor;import org.apache.ibatis.session.RowBounds;import java.util.List;@Mapperpublic interface UserMapper { @Select("SELECT * FROM user_info") @Results({ @Result(column = "id", property = "id"), @Result(colu...
2022-05-08
redis队列
日出之美便在于它脱胎于最深的黑暗。——辛夷坞 首先是配置类 分为Redis配置类和Jackson配置类,主要是用于收发消息时序列化 Jackson的 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253package com.ruben.config;import java.text.SimpleDateFormat;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.serializer.Jack...
2023-08-02
对接deepl翻译
富而不清白,不如贫而有名誉——弥尔顿 api文档如下,需要注意的是必须要绑定支付方式才能显示authKey: https://www.deepl.com/docs-api 代码如下: 12345678910111213141516171819202122232425262728293031import com.dtflys.forest.Forest;import lombok.val;import org.dromara.hutool.core.text.StrUtil;import org.dromara.streamquery.stream.core.collection.Lists;import org.dromara.streamquery.stream.core.stream.Steam;import java.util.List;import java.util.Objects;public class DeeplUtil { private static final DeeplProperties properties = SpringCont...
2022-08-28
xnio坑
恶名不治,恶伤可治——佚名 今天拉取StreamPark发现其引用了xnio 并且项目运行时抛出了nvalid file path的异常提示 发现源码部分: 其去寻找了NUL:这个路径 1new FileOutputStream("NUL:") 解决方式: 启动参数带上-Djdk.io.File.enableADS=true: 1-Djdk.io.File.enableADS=true -Dapp.home=streamx-console/streamx-console-service/target/streamx-console-service-1.2.4 如果没有这一栏,可以在右侧蓝字Modify options开启
