sql >> データベース >  >> RDS >> Oracle

スプリングブート2.3.0.RELEASEの新しいエラー:Oracle 12.2.0.1 jdbcdriverのUnsatisfiedDependencyExceptionですが、mysqljdbcdriverではありません

    JDBCドライバーは問題なく動作しています。

    コメントですでに学んだように、問題はそれです

    a)SpringDataJDBCにDialectが必要になりました データベースごとに

    b)SpringDataJDBCにはDialectが付属していません Oracleの場合。

    修正:

    Spring DataJDBCFirebird方言が認識されない および https:// spring .io / blog / 2020/05/20 / migrating-to-spring-data-jdbc-2-0 独自の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を完全にサポートできると確信しています。



    1. 構文エラー:'区切り文字'はここに有効な入力ではありません

    2. 日付別のMySQL累積合計注​​文

    3. Node.jsアプリケーションからHerokuがホストするPostgresデータベースのクエリ中に「自己署名証明書」エラーが発生しました

    4. SQLPlusスクリプトに渡されなかったパラメータのデフォルト値