fix: #I9V9MB 修复多个SqlSessionFactory共存时,FlexGlobalConfig被最后一个覆盖的问题

This commit is contained in:
witt 2024-06-05 17:18:54 +08:00
parent ffa9ea52d2
commit 4f2982131b

View File

@ -128,14 +128,17 @@ public class FlexSqlSessionFactoryBuilder extends SqlSessionFactoryBuilder {
String environmentId = configuration.getEnvironment().getId();
FlexGlobalConfig globalConfig = FlexGlobalConfig.getConfig(environmentId);
if (globalConfig == null){
boolean configUnInitialize = globalConfig == null;
if (configUnInitialize) {
globalConfig = new FlexGlobalConfig();
}
globalConfig.setSqlSessionFactory(sessionFactory);
globalConfig.setConfiguration(configuration);
FlexGlobalConfig.setConfig(environmentId, globalConfig,true);
boolean isDefault = FlexGlobalConfig.getDefaultConfig() == globalConfig;
// #I9V9MB 多个SqlSessionFactory初始化时被最后一个覆盖默认配置
FlexGlobalConfig.setConfig(environmentId, globalConfig, configUnInitialize || isDefault);
}