Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Kesalahan Baru di boot musim semi 2.3.0.RELEASE :UnsatisfiedDependencyException untuk Oracle 12.2.0.1 jdbcdriver tetapi tidak dengan jdbcdriver mysql

Driver JDBC baik-baik saja.

Seperti yang sudah Anda pelajari di komentar, masalahnya adalah

a) Spring Data JDBC sekarang membutuhkan Dialect untuk setiap basis data

b) Spring Data JDBC tidak dikirimkan dengan Dialect untuk Oracle.

Perbaikan:

Seperti yang dijelaskan dalam Dialek Spring Data JDBC Firebird tidak dikenali dan di https://spring .io/blog/2020/05/20/migrating-to-spring-data-jdbc-2-0 Anda harus memberikan Dialect Anda sendiri implementasi sekarang.

Sesuatu seperti ini seharusnya bekerja:

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;
    }

}

Anda kemudian perlu membuat Dialect tersedia melalui DialectProvider seperti yang dijelaskan dalam pertanyaan Stackoverflow yang dirujuk:

Beberapa latar belakang:

Sejauh ini tim Spring Data tidak menjalankan tes integrasi mereka dengan database Oracle. Ini karena untuk beberapa waktu tidak jelas bagaimana melakukannya secara legal karena semua kode termasuk infrastruktur build adalah open source dan Oracle harus menerima segala macam hal untuk menggunakan instance database atau drivernya.

Saat ini gambar Docker tersedia untuk pengujian dan driver JDBC tersedia dari Maven Central. Ini masih sedikit rumit karena opsi saat ini untuk gambar buruh pelabuhan yang saya ketahui memungkinkan Anda memilih antara ukuran gambar banyak GB atau waktu mulai sekitar 15 menit.

Bagaimanapun ada anggota komunitas yang menangani masalah ini:https://jira.spring.io/ jelajahi/DATAJDBC-256

Oleh karena itu, saya yakin bahwa kami akan dapat sepenuhnya mendukung Oracle dalam waktu dekat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL Query untuk mengambil Acara tertentu menggunakan kondisi tertentu di xpath?

  2. Kolom Pengisi Otomatis 12c dengan Nilai Urutan

  3. Tingkat isolasi di oracle

  4. Mencoba membuat Daftar Nilai termasuk nilai tabel dan angka di bawahnya

  5. Tambahkan atribut ke xmltype dengan nilai yang diambil dari urutan