No se puede conectar Spring JPA con Oracle
Hola, estoy usando la siguiente configuración, pero todavía recibo un error.
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
debajo de la dependencia que usé en pom.xml
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<scope>runtime</scope>
</dependency>
todavía me aparece el siguiente error.
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
¿Cuál es el problema en mi configuración? en lugar de driver-class
i también la inspección con driver-class-name
lo comprobé OracleDialect
, Oracle10gDialect
y Oracle12cDialect
. para los 3 recibo el mismo error.
Respuestas
no hay nada como el dialecto "Oracle12cDialect". necesita escribir de manera adecuada. : -
en su archivo de propiedad es:
spring.jpa.properties.hibernate.dialect=Oracle12cDialect
spring.datasource.driver-class=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:[email protected]:1521:mfg1229
pero debería ser: -
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 no funciona, cambie a:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
El dialecto de Oracle12c se puede utilizar con hibernate 5.x.
Deberías agregar esto a tu classpath:
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.24.Final</version>
</dependency>
Tenga en cuenta que necesita el dialecto para la versión principal de Oracle DB.
Sin embargo, no puedo ver el marco exacto que estás usando. Verifique que la dependencia obove sea parte de su classpath. Esto puede venir con otras dependencias como JPA o spring-data.
También tenga en cuenta que su cadena jdbc parece estar mal.
Debe tener un aspecto como este:
url="jdbc:oracle:thin:@sca00tof.us.dell.com:1521:mfg1229"
Consulte aquí para obtener más detalles: formato de cadena de URL para conectarse a la base de datos Oracle con JDBC