繁体   English   中英

无法将 spring jpa 与 Oracle 连接

[英]Not able to connect spring jpa with Oracle

嗨,我正在使用以下配置,但仍然出现错误。

spring.datasource.url=jdbc:oracle:thin@sca00tof.us.dell.com: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

我在 pom.xml 中使用的以下依赖项

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

我仍然低于错误。

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

我的配置有什么问题。 而不是driver-class ,我还检查了driver-class-name ,我检查了OracleDialectOracle10gDialectOracle12cDialect 对于所有 3 我都遇到了同样的错误。

Oracle12c 的方言可以与 hibernate 5.x 一起使用。

您应该将其添加到您的类路径中:

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

请注意,您需要 Oracle DB 对应版本的方言。

我怎么看不到您正在使用的确切框架。 请检查上述依赖项是否是您的类路径的一部分。 这可能与其他依赖项一起出现,例如 JPA 或 spring-data。


另请注意,您的 jdbc 字符串似乎是错误的。

它应该如下所示:

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

有关详细信息,请参见此处: URL 字符串格式,用于使用 JDBC 连接到 Oracle 数据库

没有像“Oracle12cDialect”这样的方言。 你需要以正确的方式写作。 :--

在您的属性文件中,它是:

spring.jpa.properties.hibernate.dialect=Oracle12cDialect
spring.datasource.driver-class=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin@sca00tof.us.dell.com:1521:mfg1229

但它应该是:--

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

如果不起作用,请更改为:

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM