Это несовместимость интерфейса. javax.sql.DataSource
определяет метод
default ConnectionBuilder createConnectionBuilder() throws SQLException
И согласно контракту возвращаемое значение должно иметь тип ConnectionBuilder.
Если вы посмотрите на документацию oracle .ucp.jdb c .PoolDataSourceImpl, он определяет метод как
public UCPConnectionBuilder createConnectionBuilder()
, тогда как oracle.ucp.jdbc.UCPConnectionBuilder
не является подтипом java.sql.ConnectionBuilder
.
Теперь, если Oracle не выпустит никогда версию версии oracle.ucp.jdbc.UCPConnectionBuilder
, которая расширяет java.sql.ConnectionBuilder
, вы не сможете обменять UCP PoolDataSource с javax.sql.DataSource
.
Последним выпуском на данный момент является UCP 19.3 , что по-прежнему может привести к той же проблеме, что вызывает сожаление, поскольку 19.3 объявлен как JDK11-совместимый. Пожалуйста, поднимите ошибку в Oracle UCP, чтобы информировать сопровождающих о новом участнике createConnectionBuilder в интерфейсе DataSource.
В Intrim, если это возможно, вы можете использовать 11g выпуск 2 UCP (не 12, не 19), у которого нет метода createConnectionBuilder в интерфейсе PoolDataSource. Не идеальная ситуация, поскольку вы отказываетесь от десятилетних улучшений UCP, возвращаясь к 11g.