Le pilote JDBC fonctionne très bien.
Comme vous l'avez déjà appris dans les commentaires, le problème est que
a) Spring Data JDBC nécessite désormais un Dialect
pour chaque base de données
b) Spring Data JDBC n'est pas livré avec un Dialect
pour Oracle.
Le correctif :
Comme décrit dans Dialecte Spring Data JDBC Firebird non reconnu et dans https://spring .io/blog/2020/05/20/migrating-to-spring-data-jdbc-2-0
vous devez fournir votre propre Dialect
mise en œuvre dès maintenant.
Quelque chose comme ceci devrait fonctionner :
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;
}
}
Vous devez ensuite faire le Dialect
disponible via un DialectProvider
comme décrit dans la question Stackoverflow référencée :
Quelques informations :
Jusqu'à présent, l'équipe Spring Data n'exécute pas ses tests d'intégration avec une base de données Oracle.C'est parce que pendant un certain temps, il n'était pas clair comment le faire de manière légale, car tout le code, y compris l'infrastructure de construction, était open source et Oracle devait accepter de toutes sortes de choses pour utiliser une instance de base de données ou leur pilote.
À présent, les images Docker sont disponibles pour les tests et le pilote JDBC est disponible auprès de Maven Central. C'est encore un peu délicat car les options actuelles pour les images docker que je connais vous permettent de choisir entre une taille d'image de plusieurs Go ou un temps de démarrage d'environ 15 minutes.
Quoi qu'il en soit, un membre de la communauté travaille sur le problème :https://jira.spring.io/ parcourir/DATAJDBC-256
Je suis donc convaincu que nous serons en mesure de prendre entièrement en charge Oracle dans un avenir proche.