JDBCドライバーは問題なく動作しています。
コメントですでに学んだように、問題はそれです
a)SpringDataJDBCにDialect
が必要になりました データベースごとに
b)SpringDataJDBCにはDialect
が付属していません Oracleの場合。
修正:
Spring DataJDBCFirebird方言が認識されない およびDialect
を提供する必要があります 今すぐ実装します。
このようなものが機能するはずです:
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;
}
}
次に、Dialect
を作成する必要があります DialectProvider
から入手可能 参照されているStackoverflowの質問で説明されているように:
いくつかの背景:
これまでのところ、Spring DataチームはOracleデータベースとの統合テストを実行していません。これは、ビルドインフラストラクチャを含むすべてのコードがオープンソースであり、Oracleが受け入れる必要があるため、合法的な方法で統合テストを実行する方法がかなり長い間不明であったためです。データベースインスタンスまたはそのドライバを使用するためのあらゆる種類のものの。
これで、Dockerイメージをテストに使用でき、JDBCドライバーをMavenCentralから入手できます。私が知っているDockerイメージの現在のオプションでは、数GBのイメージサイズまたは約15分の起動時間のいずれかを選択できるため、まだ少し注意が必要です。
とにかく、この問題に取り組んでいるコミュニティメンバーがいます: https://jira.spring.io/参照/DATAJDBC-256
したがって、近い将来、Oracleを完全にサポートできると確信しています。