El controlador JDBC funciona bien.
Como ya aprendiste en los comentarios el problema es que
a) Spring Data JDBC ahora requiere un Dialect
para cada base de datos
b) Spring Data JDBC no se envía con un Dialect
para Oracle.
La solución:
Como se describe en Dialecto Spring Data JDBC Firebird no reconocido y en https://spring .io/blog/2020/05/20/migrando-a-spring-data-jdbc-2-0
debe proporcionar su propio Dialect
implementación ahora mismo.
Algo como esto debería funcionar:
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;
}
}
A continuación, debe hacer el Dialect
disponible a través de un DialectProvider
como se describe en la pregunta de Stackoverflow a la que se hace referencia:
Algunos antecedentes:
Hasta ahora, el equipo de Spring Data no ejecuta sus pruebas de integración con una base de datos de Oracle. Esto se debe a que durante bastante tiempo no estaba claro cómo hacerlo de manera legal, ya que todo el código, incluida la infraestructura de compilación, era de código abierto y Oracle requería la aceptación. de todo tipo de cosas para usar una instancia de base de datos o su controlador.
Por ahora, las imágenes de Docker están disponibles para realizar pruebas y el controlador JDBC está disponible en Maven Central. Todavía es un poco complicado ya que las opciones actuales para las imágenes acoplables que conozco le permiten elegir entre un tamaño de imagen de muchos GB o un tiempo de inicio de aproximadamente 15 minutos.
De todos modos, hay un miembro de la comunidad trabajando en el problema:https://jira.spring.io/ navegar/DATAJDBC-256
Por lo tanto, confío en que podremos brindar soporte completo a Oracle en un futuro cercano.