Camunda自定义配置下生成数字流程实例ID而非UUID的原因是什么?
问题原因
你手动实例化并注册的SpringProcessEngineConfiguration Bean没有显式配置ID生成器,触发了Camunda的默认数据库ID生成策略:
- Camunda官方Spring Boot整合包的自动配置逻辑,默认会注入
StrongUuidGenerator作为全局ID生成器,这也是常规场景下流程实例ID为UUID格式的原因。 - 你在自定义Config类中直接new了
SpringProcessEngineConfiguration对象,覆盖了Spring Boot自动装配的默认配置实例,且没有调用setIdGenerator方法指定UUID生成器,此时Camunda会降级到内置的DbIdGenerator:该生成器依赖数据库自增序列分配ID,生成的就是纯数字的流水号。
修复方法
在你的Config类的processEngineConfiguration方法中补充ID生成器配置即可,不需要修改其他逻辑:
// 先导入UUID生成器类 import org.camunda.bpm.engine.impl.persistence.StrongUuidGenerator; @Bean public SpringProcessEngineConfiguration processEngineConfiguration() { final SpringProcessEngineConfiguration config = new SpringProcessEngineConfiguration(); // 新增这一行配置即可 config.setIdGenerator(new StrongUuidGenerator()); // 剩下的原有配置保持不变 config.setDataSource(dataSource); // ... 其他原有配置 return config; }
配置生效后重启引擎,新生成的流程实例ID就会恢复为默认的UUID格式。
内容的提问来源于stack exchange,提问作者Glory to Russia
相关产品推荐
相关产品推荐

