19
19
import org .hibernate .dialect .Dialect ;
20
20
import org .hibernate .engine .config .spi .ConfigurationService ;
21
21
import org .hibernate .engine .jdbc .batch .spi .BatchBuilder ;
22
+ import org .hibernate .engine .jdbc .connections .internal .ConnectionProviderInitiator ;
23
+ import org .hibernate .engine .jdbc .connections .internal .DatabaseConnectionInfoImpl ;
22
24
import org .hibernate .engine .jdbc .connections .spi .ConnectionProvider ;
23
25
import org .hibernate .engine .jdbc .connections .spi .DatabaseConnectionInfo ;
24
26
import org .hibernate .engine .jdbc .connections .spi .JdbcConnectionAccess ;
@@ -123,6 +125,7 @@ public JdbcEnvironment initiateService(Map<String, Object> configurationValues,
123
125
}
124
126
125
127
final JdbcEnvironment jdbcEnvironment ;
128
+ DatabaseConnectionInfo databaseConnectionInfo ;
126
129
if ( allowJdbcMetadataAccess ( configurationValues ) ) {
127
130
jdbcEnvironment = getJdbcEnvironmentUsingJdbcMetadata (
128
131
configurationValues ,
@@ -132,6 +135,7 @@ public JdbcEnvironment initiateService(Map<String, Object> configurationValues,
132
135
explicitDatabaseMajorVersion ,
133
136
explicitDatabaseMinorVersion ,
134
137
explicitDatabaseVersion );
138
+ databaseConnectionInfo = buildDbInfo ( registry );
135
139
}
136
140
else if ( explicitDialectConfiguration ( explicitDatabaseName , configurationValues ) ) {
137
141
jdbcEnvironment = getJdbcEnvironmentWithExplicitConfiguration (
@@ -143,31 +147,42 @@ else if ( explicitDialectConfiguration( explicitDatabaseName, configurationValue
143
147
explicitDatabaseMinorVersion ,
144
148
explicitDatabaseVersion
145
149
);
150
+ databaseConnectionInfo = buildDbInfo ( configurationValues );
146
151
}
147
152
else {
148
153
jdbcEnvironment = getJdbcEnvironmentWithDefaults ( configurationValues , registry , dialectFactory );
154
+ databaseConnectionInfo = buildDbInfo ( configurationValues );
149
155
}
150
156
151
- logDbInfo ( registry , jdbcEnvironment );
157
+ // most likely, the version hasn't been set yet, at least not for the ConnectionProviders that we currently maintain
158
+ databaseConnectionInfo .setDBVersion ( jdbcEnvironment .getDialect ().getVersion () );
159
+
160
+ // Standardized DB info logging
161
+ ConnectionInfoLogger .INSTANCE .logConnectionInfoDetails ( databaseConnectionInfo .getDBInfoAsString () );
152
162
153
163
return jdbcEnvironment ;
154
164
}
155
165
156
- private static void logDbInfo (ServiceRegistryImplementor registry , JdbcEnvironment jdbcEnvironment ) {
157
- // Standardized DB info logging
158
- DatabaseConnectionInfo databaseConnectionInfo = null ;
166
+ private DatabaseConnectionInfo buildDbInfo (ServiceRegistryImplementor registry ) {
159
167
if ( !isMultiTenancyEnabled ( registry ) ) {
160
168
final ConnectionProvider cp = registry .requireService ( ConnectionProvider .class );
161
- databaseConnectionInfo = cp .getDatabaseConnectionInfo ();
169
+ return cp .getDatabaseConnectionInfo ();
162
170
}
163
171
else {
164
172
final MultiTenantConnectionProvider <?> mcp = registry .getService ( MultiTenantConnectionProvider .class );
165
- databaseConnectionInfo = mcp .getDatabaseConnectionInfo ();
173
+ assert mcp != null ;
174
+ return mcp .getDatabaseConnectionInfo ();
166
175
}
167
- // most likely, the version hasn't been set yet, at least not for the ConnectionProviders that we currently maintain
168
- databaseConnectionInfo .setDBVersion ( jdbcEnvironment .getDialect ().getVersion () );
176
+ }
169
177
170
- ConnectionInfoLogger .INSTANCE .logConnectionInfoDetails ( databaseConnectionInfo .getDBInfoAsString () );
178
+ private DatabaseConnectionInfo buildDbInfo (Map <String , Object > configurationValues ) {
179
+ return new DatabaseConnectionInfoImpl ()
180
+ .setDBUrl ( (String ) configurationValues .get (JdbcSettings .JAKARTA_JDBC_URL ) )
181
+ .setDBDriverName ( (String ) configurationValues .get (JdbcSettings .JAKARTA_JDBC_DRIVER ) )
182
+ .setDBAutoCommitMode ( (String ) configurationValues .get (JdbcSettings .AUTOCOMMIT ) )
183
+ .setDBIsolationLevel ( ConnectionProviderInitiator .toIsolationNiceName ( ConnectionProviderInitiator .interpretIsolation (configurationValues .get (JdbcSettings .ISOLATION )) ) )
184
+ // No setting for min. pool size
185
+ .setDBMaxPoolSize ( (String ) configurationValues .get (JdbcSettings .POOL_SIZE ) );
171
186
}
172
187
173
188
private static JdbcEnvironmentImpl getJdbcEnvironmentWithDefaults (
0 commit comments