PROBLEM DESCRIPTION:
This appears to be a cosmetic/logging issue encountered when running Spring Boot 3.5.8 with JDK 21, JPA, and Hibernate.
Environment Details
Database: Oracle AI Database Free 23.26.0.0
JDK: 21.0.8
JDBC API version: 4.3
Oracle JDBC driver: 23.7.0.25.01
UCP: 23.7.0.25.01
Hibernate ORM Core: 6.6.36.Final
Observed Behavior
During application startup, Hibernate logs detailed information about the database environment. For example:
2025-12-08T19:53:14.292+01:00 INFO 65529 --- [Demo] [ main]
org.hibernate.orm.connections.pooling :
HHH10001005: Database info:
Database JDBC URL [Connecting through datasource 'oracle.ucp.jdbc.PoolDataSourceImpl@4a6a6a69']
Database driver: undefined/unknown
Database version: 23.26
Autocommit mode: undefined/unknown
Isolation level: undefined/unknown
Minimum pool size: undefined/unknown
Maximum pool size: undefined/unknown
As shown above, most of the reported fields are logged as undefined/unknown, even though the application connects successfully and operates normally.
what is the issue, and can i raise or you raise a Hibernate issue in Jira , that i don’t get permission to do it
Thanks!
beikov
December 16, 2025, 12:19pm
2
You’re connecting through a JNDI defined data source which doesn’t expose this information directly and there is no great way to acquire that information, so there is nothing that can be done to improve this.
This worked in Hibernate 6.5.2 The same configuration with Hibernate 6.5.2 - no “undefined/unknown” values appear.
The metadata is accessible I can successfully retrieve all metadata immediately after Hibernate initialization completes with the same data source :
@BeanBean
public CommandLineRunner logDatabaseMetadata(DataSource dataSource) {
return args → {
try (Connection connection = dataSource.getConnection()) {
DatabaseMetaData metaData = connection.getMetaData();
System.out.println("Driver Name: " + metaData.getDriverName());
System.out.println("Driver Version: " + metaData.getDriverVersion());
System.out.println("AutoCommit: " + connection.getAutoCommit());
System.out.println("Isolation Level: " + connection.getTransactionIsolation());
if (dataSource instanceof oracle.ucp.jdbc.PoolDataSource poolDataSource) {
System.out.println("Min Pool Size: " + poolDataSource.getMinPoolSize());
System.out.println("Max Pool Size: " + poolDataSource.getMaxPoolSize());
}
}
};
}
**Output:**
Driver Name: Oracle JDBC driver
Driver Version: 23.7.0.25.01
AutoCommit: true
Isolation Level: 2
Min Pool Size: 5
Max Pool Size: 5
All metadata is available - i think it’s just being queried too early in JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata() .
beikov
December 16, 2025, 1:39pm
4
Given that e.g. the HikariCP connection provider creates a connection in DatabaseConnectionInfo getDatabaseConnectionInfo(Dialect dialect) but the data source connection provider doesn’t, this might be just an oversight then.
This might be a nice little improvement that you could work on if you care about it