To jest niezgodność interfejsu. javax.sql.DataSource
definiuje metodę
default ConnectionBuilder createConnectionBuilder() throws SQLException
Zgodnie z umową wartość zwracana musi być typu ConnectionBuilder.
Jeśli spojrzysz na dokumentację oracle.ucp.jdbc.PoolDataSourceImpl, definiuje ona metodę jako
public UCPConnectionBuilder createConnectionBuilder()
natomiast oracle.ucp.jdbc.UCPConnectionBuilder
nie jest podtypem java.sql.ConnectionBuilder
.
Teraz, chyba że Oracle wyda nigdy wersję oracle.ucp.jdbc.UCPConnectionBuilder
interfejs rozszerzający java.sql.ConnectionBuilder
, nie będzie można zamienić UCP PoolDataSource na javax.sql.DataSource
.
Najnowsza wersja w tym momencie wydaje się być UCP 19.3 , co nadal miałoby ten sam problem, co jest niefortunne, ponieważ 19.3 jest reklamowany jako zgodny z JDK11. Proszę zgłosić błąd dotyczący Oracle UCP, aby poinformować opiekunów o nowym uczestniku createConnectionBuilder w interfejsie DataSource.
Intrim, jeśli jest to wykonalne, możesz wrócić do korzystania z 11g wydania 2 UCP (nie 12, nie 19), które nie ma metody createConnectionBuilder w interfejsie PoolDataSource. Nie jest to idealna sytuacja, ponieważ rezygnujesz z dziesięcioletniej poprawy UCP, wracając do 11g.