!464 修复多个SqlSessionFactory共存时,FlexGlobalConfig被最后一个覆盖的问题

Merge pull request !464 from witt/fix_I9V9MB
This commit is contained in:
Michael Yang 2024-06-06 06:56:50 +00:00 committed by Gitee
commit dd27e9c8be
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

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);
}