Spring jpa kann nicht mit Oracle verbunden werden
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-class
ich auch mit driver-class-name
geprüft OracleDialect
, Oracle10gDialect
und Oracle12cDialect
. Für alle 3 erhalte ich den gleichen Fehler.
Antworten
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
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