SpringJPAを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の方言は、hibernate5.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>
対応するバージョンのOracleDBの方言が必要であることに注意してください。
ただし、使用しているフレームワークを正確に確認することはできません。上記の依存関係がクラスパスの一部であることを確認してください。これには、JPAまたはspring-dataなどの他の依存関係が伴う場合があります。
また、jdbc文字列が間違っているように見えることに注意してください。
次のようになります。
url="jdbc:oracle:thin:@sca00tof.us.dell.com:1521:mfg1229"
詳細はこちらをご覧ください:JDBCを使用してOracleデータベースに接続するためのURL文字列形式