Toto je nekompatibilita rozhraní. javax.sql.DataSource
definuje metodu
default ConnectionBuilder createConnectionBuilder() throws SQLException
A podle smlouvy návratová hodnota vyžaduje, aby byla typu ConnectionBuilder.
Pokud se podíváte na dokumentaci oracle.ucp.jdbc.PoolDataSourceImpl, definuje metodu jako
public UCPConnectionBuilder createConnectionBuilder()
zatímco oracle.ucp.jdbc.UCPConnectionBuilder
není podtypem java.sql.ConnectionBuilder
.
Nyní, pokud Oracle nevydá nikdy verzi oracle.ucp.jdbc.UCPConnectionBuilder
rozhraní, které rozšiřuje java.sql.ConnectionBuilder
, nebudete moci zaměnit UCP PoolDataSource s javax.sql.DataSource
.
Zdá se, že nejnovější vydání v tomto okamžiku je UCP 19.3 , který by stále narážel na stejný problém, což je nešťastné, protože 19.3 je inzerováno jako kompatibilní s JDK11. Nahlaste prosím chybu proti Oracle UCP, aby správci byli informováni o novém účastníku createConnectionBuilder v rozhraní DataSource.
V rámci toho, pokud je to možné, můžete se vrátit k použití 11g vydání 2 UCP (ne 12, ne 19), které nemá metodu createConnectionBuilder na rozhraní PoolDataSource. Není to ideální situace, protože se vzdáváte desetiletých vylepšení UCP tím, že se vrátíte k 11g.