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

相关推荐
一叶飘零_sweeeet3 小时前
2026 年 Java 面试必问:Spring AI 核心原理,90% 人答不全
java·面试·spring ai
星河耀银海3 小时前
JAVA 泛型与通配符:从原理到实战应用
android·java·服务器
咱那飘逸的长发3 小时前
Trae java项目配置全局maven和jdk
java·python·maven
SamDeepThinking3 小时前
为什么要做性能测试
java·后端·程序员
晔子yy3 小时前
[JAVA探索之路]带你从零开始实现线程池
java·开发语言
AI木马人3 小时前
20.人工智能实战:大模型项目如何从 Demo 走向生产?一套可落地的上线验收清单与工程治理方案
java·开发语言·人工智能
CandyU23 小时前
Unity —— 反射
java·开发语言
楼田莉子3 小时前
仿照Muduo的高并发服务器:EventLoop模块及与TimeWheel模块联调
java·开发语言
小雅痞3 小时前
[Java][Leetcode middle] 3. 无重复字符的最长子串
java·开发语言·leetcode
SamDeepThinking3 小时前
为什么你做技术方案总是漏掉边界情况
java·后端·程序员