sql >> Databáze >  >> RDS >> Oracle

Nová chyba v jarním bootování 2.3.0.RELEASE:UnsatisfiedDependencyException pro Oracle 12.2.0.1 jdbcdriver, ale ne s mysql jdbcdriver

Ovladač JDBC funguje dobře.

Jak jste se již dozvěděli v komentářích, problém je v tom, že

a) Spring Data JDBC nyní vyžaduje Dialect pro každou databázi

b) Spring Data JDBC se nedodává s Dialect pro Oracle.

Oprava:

Jak je popsáno v Jarní data JDBC Firebird dialekt nebyl rozpoznán a v https://spring .io/blog/2020/05/20/migring-to-spring-data-jdbc-2-0 musíte zadat svůj vlastní Dialect implementace právě teď.

Něco takového by mělo fungovat:

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

}

Poté musíte vytvořit Dialect dostupné prostřednictvím DialectProvider jak je popsáno v odkazované otázce Stackoverflow:

Nějaké pozadí:

Tým Spring Data zatím neprovádí své integrační testy s databází Oracle. Je to proto, že po dlouhou dobu nebylo jasné, jak to provést legální cestou, protože veškerý kód včetně infrastruktury sestavení byl open source a Oracle vyžadoval přijetí všech druhů věcí k použití instance databáze nebo jejich ovladače.

Nyní jsou obrazy Dockeru k dispozici pro testování a ovladač JDBC je dostupný z Maven Central. Je to stále trochu složitější, protože současné možnosti pro obrázky dokovacích stanic, o kterých vím, vám umožňují vybrat si mezi velikostí obrázku mnoha GB nebo dobou spuštění přibližně 15 minut.

Každopádně na problému pracuje člen komunity:https://jira.spring.io/ procházet/DATAJDBC-256

Jsem proto přesvědčen, že v blízké budoucnosti budeme schopni plně podporovat Oracle.



  1. Jak zobrazit WORK_MEM externích připojení PostgreSQL?

  2. Jak provést příkaz SQL s parametry v bash skriptu

  3. Oracle vybrat vzájemný dílčí řetězec

  4. Proč nepřipojit Android k databázi přímo?