当前使用版本(必填,否则不予处理)
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
请问这个问题是如何解决的呢?我也遇到了类似的问题