Nie można połączyć spring jpa z Oracle
Cześć, używam poniższej konfiguracji nadal otrzymuję błąd.
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
poniżej zależności użyłem w pom.xml
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<scope>runtime</scope>
</dependency>
nadal otrzymuję poniżej błąd.
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
Jaki jest problem w mojej konfiguracji. zamiast driver-classja też sprawdzane driver-class-nameSprawdziłem OracleDialect, Oracle10gDialecti Oracle12cDialect. dla wszystkich 3 otrzymuję ten sam błąd.
Odpowiedzi
nie ma nic takiego jak dialekt „Oracle12cDialect”. musisz pisać we właściwy sposób. : -
w pliku własności jest to:
spring.jpa.properties.hibernate.dialect=Oracle12cDialect
spring.datasource.driver-class=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:[email protected]:1521:mfg1229
ale powinno być: -
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
jeśli nie działa, zmień na:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
Dialekt dla Oracle12c może być używany z hibernacją 5.x.
Powinieneś dodać to do swojej ścieżki klas:
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.24.Final</version>
</dependency>
Pamiętaj, że potrzebujesz dialektu dla podstawowej wersji Oracle DB.
Jednak nie mogę zobaczyć dokładnego frameworka, którego używasz. Sprawdź, czy zależność obove jest częścią ścieżki klas. Może to wynikać z innych zależności, takich jak JPA lub dane wiosenne.
Zwróć również uwagę, że Twój ciąg jdbc wydaje się być nieprawidłowy.
To powinno wyglądać tak:
url="jdbc:oracle:thin:@sca00tof.us.dell.com:1521:mfg1229"
Zobacz tutaj, aby uzyskać szczegółowe informacje: format ciągu URL do łączenia się z bazą danych Oracle za pomocą JDBC