重写mybatisPlus自定义ID生成策略

1.项目中需要引入mybatisplus核心组件

XML 复制代码
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mp.version}</version>
            </dependency>

2.新建一个类实现IdentifierGenerator,重写id生成策略

java 复制代码
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;

import java.util.UUID;


public class CustomUUIDGenerator implements IdentifierGenerator {

    
    @Override
    public boolean assignId(Object idValue) {
        return IdentifierGenerator.super.assignId(idValue);
    }

    //重写雪花id算法
    @Override
    public Number nextId(Object entity) {
        return SequenceUtil.makeId();
    }

    //重写uuid算法,不过滤-
    @Override
    public String nextUUID(Object entity) {
        return UUID.randomUUID().toString();
    }
}

3.在mybatisplus配置文件中注入bean

java 复制代码
@Configuration
public class MybatisPlusConfig {

    @Bean
    public IdentifierGenerator identifierGenerator() {
        return new CustomUUIDGenerator();
    }


}

4.在实体bean映射类中使用需要在ID字段上加入注解

ASSIGN_UUID即为重写后生成的UUID,原生成的uuid为32位,没有-连接符,id需要使用String类型

复制代码
@TableId(value = "id", type = IdType.ASSIGN_UUID)
复制代码
ASSIGN_ID即为重写后生成的雪花id,值为Long类型
复制代码
@TableId(value = "workspaceid", type = IdType.ASSIGN_ID)

此方法为重写覆盖原生mybatisplus,所以不影响其他地方,id依然会在insert时自动生成.

相关推荐
天天摸鱼的java工程师3 分钟前
Snowflake 雪花算法优缺点(Java老司机实战总结)
java·后端·面试
Miraitowa_cheems31 分钟前
LeetCode算法日记 - Day 11: 寻找峰值、山脉数组的峰顶索引
java·算法·leetcode
海梨花36 分钟前
【从零开始学习Redis】项目实战-黑马点评D2
java·数据库·redis·后端·缓存
共享家952737 分钟前
linux-高级IO(上)
java·linux·服务器
橘子郡12344 分钟前
观察者模式和发布订阅模式对比,Java示例
java
指针满天飞44 分钟前
Collections.synchronizedList是如何将List变为线程安全的
java·数据结构·list
Java技术小馆1 小时前
重构 Controller 的 7 个黄金法则
java·后端·面试
金銀銅鐵1 小时前
[Java] 以 IntStream 为例,浅析 Stream 的实现
java·后端
曳渔2 小时前
UDP/TCP套接字编程简单实战指南
java·开发语言·网络·网络协议·tcp/ip·udp
hqxstudying3 小时前
JAVA项目中邮件发送功能
java·开发语言·python·邮件