Това е несъвместимост на интерфейса. javax.sql.DataSource
дефинира метод
default ConnectionBuilder createConnectionBuilder() throws SQLException
И според договора върнатата стойност изисква да бъде от тип ConnectionBuilder.
Ако погледнете документацията на oracle.ucp.jdbc.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.