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

删除时效果:

相关推荐
2021-03-09
openfeign远程调用
不患人之不己知,患不知人也。——孔子《论语》 书接上文,我们配置了nacos,实现了服务注册与发现 我们再配置一台 123456789spring: cloud: nacos: config: server-addr: 127.0.0.1:8848 application: name: ruben-consumerserver: port: 8081 在配好的这台ruben-consumer中随便写个接口 12345678910111213141516package com.ruben.rubenproducerdemo.controller;import com.ruben.rubenproducerdemo.pojo.dto.PageDTO;import com.ruben.rubenproducerdemo.utils.AjaxJson;import org.springframework.web.bind.annotation.*;@RestController@RequestMapping("study"...
2020-08-12
url怎么传数组
前两天遇到一个奇葩问题,url怎么传数组参数到后端,后端怎么接收 先申明,一般项目中绝不会这么传。。。 其实很简单,前端转换成JSON进行一次Base64加密,后端进行一次Base64解密再从json转换成对象就可以 前端base64加密解密方法: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114//1.加密 var str = '内容'; var base = new Base64(); var result = base.encode(str); document.write(resu...
2022-08-11
java MethodHandle转反射对象
春雨将半,各梦所欢。——送花的人走了 最近在看MethodHandle相关内容,我们将MethodHandle转反射的Executable对象,可以这么使用: 1final Executable executable = MethodHandles.reflectAs(Executable.class, methodHandle); 当然你也可以这么用: 12345final MethodHandles.Lookup lookup = MethodHandles.lookup(); MethodHandle methodHandle = lookup .findStatic(Test.class, "myMethod", MethodType.methodType(resultType, paramerType)); Method method = lookup.revealDirect(methodHandle).reflectAs(Method.class, lookup); System....
2023-03-01
mybatis一对多查询
想认识人,解剖自己就好——杜克罗 官方文档 书接上文:mybatis流式查询 分享mybatis的结果映射配置的一对多查询方式: 123456789101112131415161718<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.ruben.mapper.UserMapper"> <resultMap id="userInfo" type="com.ruben.pojo.po.UserInfo"> <collection property="...
2022-12-07
CompletableFuture事务处理
男人的盟誓是女人的陷阱——莎士比亚 使用CompletableFuture进行异步任务编排时,可能会有事务的支持需求,我们这里可以使用之前我写的手动回滚、提交事务进行处理 代码案例如下,所用框架stream-query: 首先是不加事务的 123456789101112131415161718192021222324252627282930313233package io.github.vampireachao.stream.plugin.mybatisplus;import io.github.vampireachao.stream.plugin.mybatisplus.pojo.po.UserInfo;import org.junit.jupiter.api.Assertions;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringB...
2020-07-31
jenkinsのPipeline项目构建
下载插件 创建一个pipeline项目 点击下面的流水线语法 到流水线语法的片段生成器里选择Check out from version control 填入仓库和凭证,生成脚本 复制到pipeline脚本里去 然后选择sh:Shell script,生成脚本,复制 然后再选择deploy:Deploy war/ear to a container 然后填写参数,生成 最后的样子就是这样 完整脚本 123456789101112131415161718192021pipeline { agent any stages { stage('pull') { steps { checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extension...

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