Skip to content

Commit 6cfcee5

Browse files
committed
log warnings when settings are ignored for Datasource
1 parent 0531454 commit 6cfcee5

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

hibernate-core/src/main/java/org/hibernate/cfg/JdbcSettings.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ public interface JdbcSettings extends C3p0Settings, AgroalSettings, HikariCPSett
291291
*
292292
* @since 5.2.10
293293
*/
294-
String CONNECTION_PROVIDER_DISABLES_AUTOCOMMIT= "hibernate.connection.provider_disables_autocommit";
294+
String CONNECTION_PROVIDER_DISABLES_AUTOCOMMIT = "hibernate.connection.provider_disables_autocommit";
295295

296296
/**
297297
* A prefix for properties specifying arbitrary JDBC connection properties. These

hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
1717
import org.hibernate.engine.jdbc.connections.spi.DatabaseConnectionInfo;
1818
import org.hibernate.engine.jndi.spi.JndiService;
19+
import org.hibernate.internal.log.ConnectionInfoLogger;
1920
import org.hibernate.service.UnknownUnwrapTypeException;
2021
import org.hibernate.service.spi.Configurable;
2122
import org.hibernate.service.spi.InjectService;
@@ -87,8 +88,8 @@ else if ( DataSource.class.isAssignableFrom( unwrapType ) ) {
8788
public void configure(Map<String, Object> configValues) {
8889
if ( dataSource == null ) {
8990
final Object dataSourceSetting = configValues.get( DATASOURCE );
90-
if ( dataSourceSetting instanceof DataSource ) {
91-
dataSource = (DataSource) dataSourceSetting;
91+
if ( dataSourceSetting instanceof DataSource ds ) {
92+
dataSource = ds;
9293
}
9394
else {
9495
final String dataSourceJndiName = (String) dataSourceSetting;
@@ -109,6 +110,15 @@ public void configure(Map<String, Object> configValues) {
109110
throw new HibernateException( "Unable to determine appropriate DataSource to use" );
110111
}
111112

113+
if ( configValues.containsKey( AvailableSettings.AUTOCOMMIT ) ) {
114+
ConnectionInfoLogger.INSTANCE.ignoredSetting( AvailableSettings.AUTOCOMMIT,
115+
DatasourceConnectionProviderImpl.class );
116+
}
117+
if ( configValues.containsKey( AvailableSettings.ISOLATION ) ) {
118+
ConnectionInfoLogger.INSTANCE.ignoredSetting( AvailableSettings.ISOLATION,
119+
DatasourceConnectionProviderImpl.class );
120+
}
121+
112122
user = (String) configValues.get( AvailableSettings.USER );
113123
pass = (String) configValues.get( AvailableSettings.PASS );
114124
useCredentials = user != null || pass != null;

hibernate-core/src/main/java/org/hibernate/internal/log/ConnectionInfoLogger.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public interface ConnectionInfoLogger extends BasicLogger {
4949
@Message(id = 10001006,
5050
value = "No JDBC Driver class was specified by property '"
5151
+ JdbcSettings.JAKARTA_JDBC_DRIVER + "', '"
52-
+ JdbcSettings.JPA_JDBC_DRIVER + "', or '"
52+
+ JdbcSettings.JPA_JDBC_DRIVER + "', or '"
5353
+ JdbcSettings.DRIVER + "'")
5454
void jdbcDriverNotSpecified();
5555

@@ -72,4 +72,8 @@ public interface ConnectionInfoLogger extends BasicLogger {
7272
@LogMessage(level = DEBUG)
7373
@Message(value = "Configuring connection pool [%s]", id = 10001012)
7474
void configureConnectionPool(String type);
75+
76+
@LogMessage(level = INFO)
77+
@Message(value = "Ignoring setting '%s' for connection provider [%s]", id = 10001013)
78+
void ignoredSetting(String setting, Class<?> provider);
7579
}

0 commit comments

Comments
 (0)