Spring JPA를 Oracle과 연결할 수 없습니다.
Nov 28 2020
안녕하세요, 아래 구성을 사용하고 있지만 여전히 오류가 발생합니다.
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
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
WHat은 내 구성의 문제입니다. 대신에 driver-class
나는 또한 확인할 driver-class-name
나는 검사 OracleDialect
, Oracle10gDialect
및 Oracle12cDialect
. 모든 3에 대해 동일한 오류가 발생합니다.
답변
2 priyranjan Nov 29 2020 at 00:59
"Oracle12cDialect"방언과 같은 것은 없습니다. 적절한 방식으로 작성해야합니다. :-
속성 파일에서 다음과 같습니다.
spring.jpa.properties.hibernate.dialect=Oracle12cDialect
spring.datasource.driver-class=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:[email protected]: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
2 Marcinek Nov 28 2020 at 19:39
Oracle12c의 언어는 최대 절전 모드 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의 해당 버전에 대한 언어가 필요합니다.
얼마나 당신이 사용하고있는 정확한 프레임 워크를 볼 수 없습니다. obove 종속성이 클래스 경로의 일부인지 확인하십시오. 이것은 JPA 또는 spring-data와 같은 다른 종속성과 함께 올 수 있습니다.
또한 jdbc 문자열이 잘못된 것 같습니다.
다음과 같이 표시되어야합니다.
url="jdbc:oracle:thin:@sca00tof.us.dell.com:1521:mfg1229"
자세한 내용은 여기를 참조하십시오 : JDBC를 사용하여 Oracle 데이터베이스에 연결하기위한 URL 문자열 형식