Spring jpa kann nicht mit Oracle verbunden werden

Nov 28 2020

Hallo, ich verwende die folgende Konfiguration und erhalte immer noch eine Fehlermeldung.

spring.datasource.url=jdbc:oracle:[email protected]:1521:mfg1229
spring.datasource.username=apps
spring.datasource.password=xxxx
spring.datasource.driver-class=oracle.jdbc.driver.OracleDriver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=Oracle12cDialect

unterhalb der Abhängigkeit habe ich in pom.xml verwendet

    <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
             <scope>runtime</scope>
   </dependency>

immer noch bekomme ich unter Fehler.

Caused by: java.lang.ClassNotFoundException: Could not load requested class : Oracle12cDialect
    at org.hibernate.boot.registry.classloading.internal.AggregatedClassLoader.findClass(AggregatedClassLoader.java:210) ~[hibernate-core-5.4.23.Final.jar:5.4.23.Final]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[na:na]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
    at java.base/java.lang.Class.forName0(Native Method) ~[na:na]
    at java.base/java.lang.Clas?s.forName(Class.java:427) ~[na:na]
    enter code here

    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:130) ~[hibernate-core-5.4.23.Final.jar:5.4.23.Final]
    ... 28 common frames omitted

Was ist das Problem in meiner Konfiguration. stattdessen habe driver-classich auch mit driver-class-namegeprüft OracleDialect, Oracle10gDialectund Oracle12cDialect. Für alle 3 erhalte ich den gleichen Fehler.

Antworten

2 priyranjan Nov 29 2020 at 00:59

Es gibt nichts Schöneres als den Dialekt "Oracle12cDialect". Sie müssen richtig schreiben. : -

In Ihrer Eigenschaftendatei heißt es:

spring.jpa.properties.hibernate.dialect=Oracle12cDialect
spring.datasource.driver-class=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:[email protected]:1521:mfg1229

aber es sollte sein: -

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin@//sca00tof.us.dell.com:1521/mfg1229

Wenn dies nicht funktioniert, wechseln Sie bitte zu:

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
2 Marcinek Nov 28 2020 at 19:39

Der Dialekt für Oracle12c kann mit Hibernate 5.x verwendet werden.

Sie sollten dies Ihrem Klassenpfad hinzufügen:

<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.4.24.Final</version>
</dependency>

Bitte beachten Sie, dass Sie den Dialekt für die entsprechende Core-Version von Oracle DB benötigen.

Ich kann jedoch nicht genau sehen, welches Framework Sie verwenden. Bitte überprüfen Sie, ob die obige Abhängigkeit Teil Ihres Klassenpfads ist. Dies kann mit anderen Abhängigkeiten wie JPA oder Federdaten einhergehen.


Bitte beachten Sie auch, dass Ihre JDBC-Zeichenfolge falsch zu sein scheint.

Es sollte so aussehen:

url="jdbc:oracle:thin:@sca00tof.us.dell.com:1521:mfg1229"

Weitere Informationen finden Sie hier: URL-Zeichenfolgenformat für die Verbindung zur Oracle-Datenbank mit JDBC