当前使用版本(必填,否则不予处理)

3.4.3.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

@Bean
public MybatisPlusPropertiesCustomizer plusPropertiesCustomizer() {
    return plusProperties -> plusProperties.getGlobalConfig().setIdentifierGenerator(new UUIDIdentifierGenerator());
}

/**
 * UUID主键生成器
 */
public class UUIDIdentifierGenerator implements IdentifierGenerator {

    @Override
    public String nextUUID(Object entity) {
        ThreadLocalRandom random = ThreadLocalRandom.current();
        return new UUID(random.nextLong(), random.nextLong()).toString();
    }

    @Override
    public Number nextId(Object entity) {
        Snowflake snowflake = IdUtil.getSnowflake(1, 1);
        return snowflake.nextId();
    }

}

重现步骤(如果有就写完整)

debug MybatisParameterHandler populateKeys 发现 final IdentifierGenerator identifierGenerator = GlobalConfigUtils.getGlobalConfig(this.configuration).getIdentifierGenerator(); 获取到 还是 DefaultIdentifierGenerator 不是 自定义的 UUIDIdentifierGenerator

报错信息

无报错信息但是 id 没有 走 自定的 UUIDIdentifierGenerator.nextUUID

Comment From: conifercone

你应该直接把UUIDIdentifierGenerator这个类加上@Component注解就可以了吧,因为注入ID生成器的时候会去扫描这个IdentifierGenerator类型的Bean在Spring容器里面有没有,有的话会主动加进去

Comment From: qmdx

https://baomidou.com/pages/568eb2/#%E6%96%B9%E5%BC%8F%E4%B8%80-%E5%A3%B0%E6%98%8E%E4%B8%BA-bean-%E4%BE%9B-spring-%E6%89%AB%E6%8F%8F%E6%B3%A8%E5%85%A5

Comment From: chaobingliu

请问这个问题是如何解决的呢?我也遇到了类似的问题