De JDBC Driver doet het prima.
Zoals je al hebt geleerd in de opmerkingen, is het probleem dat
a) Spring Data JDBC vereist nu een Dialect
voor elke database
b) Spring Data JDBC wordt niet geleverd met een Dialect
voor Oracle.
De oplossing:
Zoals beschreven in Spring Data JDBC Firebird dialect niet herkend en in https://spring .io/blog/2020/05/20/migreren-naar-spring-data-jdbc-2-0
je moet je eigen Dialect
opgeven implementatie nu.
Iets als dit zou moeten werken:
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;
}
}
U moet dan het Dialect
. maken beschikbaar via een DialectProvider
zoals beschreven in de Stackoverflow-vraag waarnaar wordt verwezen:
Enige achtergrond:
Tot nu toe heeft het Spring Data-team hun integratietests met een Oracle-database niet uitgevoerd. Dit komt omdat het geruime tijd onduidelijk was hoe dat op een legale manier moest worden gedaan, aangezien alle code inclusief de build-infrastructuur open source was en Oracle vereiste acceptatie van allerlei dingen om een database-instantie of hun stuurprogramma te gebruiken.
Inmiddels zijn Docker-images beschikbaar om te testen en is het JDBC-stuurprogramma beschikbaar via Maven Central. Het is nog steeds een beetje lastig omdat de huidige opties voor docker-images die ik ken, je laten kiezen tussen een afbeeldingsgrootte van vele GB's of een opstarttijd van ongeveer 15 minuten.
Hoe dan ook, er is een communitylid aan het werk:https://jira.spring.io/ bladeren/DATAJDBC-256
Ik heb er dan ook alle vertrouwen in dat we Oracle in de nabije toekomst volledig kunnen ondersteunen.