Tidak dapat menghubungkan pegas jpa dengan Oracle

Nov 28 2020

Hai, saya menggunakan konfigurasi di bawah ini masih saya mendapatkan kesalahan.

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

di bawah ketergantungan saya digunakan di pom.xml

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

masih saya mendapatkan kesalahan di bawah ini.

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

APA masalah dalam konfigurasi saya. bukannya driver-classsaya juga memeriksa dengan driver-class-namesaya diperiksa OracleDialect, Oracle10gDialectdan Oracle12cDialect. untuk semua 3 saya mendapatkan kesalahan yang sama.

Jawaban

2 priyranjan Nov 29 2020 at 00:59

tidak ada yang seperti dialek "Oracle12cDialect". Anda perlu menulis dengan cara yang benar. : -

di file properti Anda adalah:

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

tetapi seharusnya: -

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

jika tidak berhasil maka silahkan ganti ke:

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

Dialek untuk Oracle12c dapat digunakan dengan hibernate 5.x.

Anda harus menambahkan ini ke classpath Anda:

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

Harap dicatat bahwa Anda memerlukan dialek untuk Versi inti yang menanggapi Oracle DB.

Bagaimana pun saya tidak dapat melihat kerangka kerja persis yang Anda gunakan. Harap periksa apakah ketergantungan obove adalah bagian dari jalur kelas Anda. Ini mungkin datang dengan dependensi lain seperti JPA atau spring-data.


Juga harap dicatat bahwa string jdbc Anda tampaknya salah.

Ini akan terlihat seperti ini:

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

Lihat di sini untuk detailnya: Format string URL untuk menghubungkan ke database Oracle dengan JDBC