Sterownik JDBC radzi sobie dobrze.
Jak już dowiedziałeś się w komentarzach, problem polega na tym, że
a) Spring Data JDBC wymaga teraz Dialect
dla każdej bazy danych
b) Spring Data JDBC nie jest dostarczany z Dialect
dla Oracle.
Poprawka:
Jak opisano w Nie rozpoznano dialektu Spring Data JDBC Firebird oraz w https://spring .io/blog/2020/05/20/migrating-to-spring-data-jdbc-2-0
musisz podać swój własny Dialect
wdrożenie już teraz.
Coś takiego powinno działać:
class MyOracleDialect extends AnsiDialect {
private static final LimitClause LIMIT_CLAUSE = new LimitClause() {
@Override
public String getLimit(long limit) {
return String.format("FETCH NEXT %d ROWS ONLY", limit);
}
@Override
public String getOffset(long offset) {
return String.format("OFFSET %d ROWS", offset);
}
@Override
public String getLimitOffset(long limit, long offset) {
return String.format("OFFSET %d ROWS FETCH NEXT %d ROWS ONLY", offset, limit);
}
@Override
public Position getClausePosition() {
return Position.AFTER_ORDER_BY;
}
};
@Override
public LimitClause limit() {
return LIMIT_CLAUSE;
}
}
Następnie musisz utworzyć Dialect
dostępne za pośrednictwem DialectProvider
jak opisano we wspomnianym pytaniu Stackoverflow:
Niektóre tło:
Jak dotąd zespół Spring Data nie przeprowadza testów integracji z bazą danych Oracle. To dlatego, że przez dłuższy czas nie było jasne, jak to zrobić w sposób legalny, ponieważ cały kod, w tym infrastruktura do budowania, był open source i Oracle wymagało akceptacji. wszelkiego rodzaju rzeczy do użycia instancji bazy danych lub jej sterownika.
Do tej pory obrazy Dockera są dostępne do testowania, a sterownik JDBC jest dostępny w Maven Central. Wciąż jest to trochę trudne, ponieważ obecne opcje obrazów dokowanych, o których wiem, pozwalają wybierać między rozmiarem obrazu wynoszącym wiele GB lub czasem uruchamiania wynoszącym około 15 minut.
W każdym razie nad problemem pracuje członek społeczności:https://jira.spring.io/ przeglądaj/DATAJDBC-256
Dlatego jestem przekonany, że w najbliższej przyszłości będziemy w stanie w pełni wspierać Oracle.