重写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时自动生成.

相关推荐
apihz5 分钟前
随机驾考题目(C 照科一 / 科四 2000+ 题)免费API调用教程
android·java·c语言·开发语言·网络协议·tcp/ip
AIGS00121 分钟前
企业AI落地:Agent OS 治理框架实践
java·大数据·人工智能·机器学习·人工智能ai大模型应用
-西门吹雪1 小时前
现代C++ 并发编程-学习指南
java·jvm·c++
lh17931 小时前
数据产业服务分类(53)——分类设计——数据能力集成
java·人工智能·分类
想你依然心痛1 小时前
自定义RTOS内核:从零实现上下文切换与任务调度——汇编、PendSV
java·开发语言·汇编·pendsv
geovindu2 小时前
java:Abstract Factory Pattern
java·开发语言·后端·设计模式·抽象工厂模式·创建型模式
geovindu2 小时前
java: Factory Method Pattern
java·开发语言·后端·设计模式·工厂方法模式·创建型模式
程序员小八7772 小时前
如何自研一个全局异常处理器
java
风中的小甜瓜2 小时前
ASP.NET Page 那点事
java·前端·asp.net
爱敲代码的小鱼2 小时前
springsecurity:
java·开发语言·数据库