Impossible de connecter Spring jpa avec Oracle

Nov 28 2020

Salut, j'utilise la configuration ci-dessous toujours, j'obtiens une erreur.

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

sous la dépendance que j'ai utilisée dans pom.xml

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

je reçois toujours une erreur ci-dessous.

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

QUEL est le problème dans ma configuration. au lieu de driver-classj'ai aussi vérifié avec driver-class-namej'ai vérifié OracleDialect, Oracle10gDialectet Oracle12cDialect. pour tous les 3 j'obtiens la même erreur.

Réponses

2 priyranjan Nov 29 2020 at 00:59

il n'y a rien de tel que le dialecte "Oracle12cDialect". vous devez écrire correctement. : -

dans votre dossier immobilier c'est:

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

mais ça devrait être: -

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

si cela ne fonctionne pas, veuillez changer pour:

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

Le dialecte d'Oracle12c peut être utilisé avec hibernate 5.x.

Vous devez ajouter ceci à votre chemin de classe:

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

Veuillez noter que vous avez besoin du dialecte pour la version coreesponding d'Oracle DB.

Cependant, je ne peux pas voir le cadre exact que vous utilisez. Veuillez vérifier que la dépendance ci-dessus fait partie de votre chemin de classe. Cela peut venir avec d'autres dépendances telles que JPA ou spring-data.


Veuillez également noter que votre chaîne jdbc semble être incorrecte.

Ça devrait ressembler à ça:

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

Voir ici pour plus de détails: Format de chaîne URL pour la connexion à la base de données Oracle avec JDBC