spring boot統合spring data jpa時報エラーjava.lang.classNotFoundException:org.hibernate.Optimistic LockExcep
バージョン環境:spring boot(1.5.9.Release)
pom.xmlファイル:
spring bootが1.5.9.RELEASEのバージョンで、デフォルトで導入されたspring-boot-starter-data-jpaのバージョンは1.5.9.RELEASEで、その中に含まれるhibernaneのコア依存hibernaneバージョンは5.0.12.Finalで、このバージョンでOptimistic LockExceptionクラスを除去したので、上のエラーが発生しました.
ソリューション:
調べたところ、hibernate-coreバージョンが5.0.11.Final依存度にこのクラスが存在するため、デフォルトの依存バージョンを除去し、このバージョンを追加すればいいです.修正後のpom.xmlは以下の通りです.
pom.xmlファイル:
org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
com.oracle
ojdbc6
${oracle.ojdbc6.version}
org.springframework.boot
spring-boot-starter-data-jpa
エラーメッセージ:Caused by: java.lang.ClassNotFoundException: org.hibernate.OptimisticLockException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_144]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_144]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_144]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_144]
... 60 common frames omitted
エラーの原因:spring bootが1.5.9.RELEASEのバージョンで、デフォルトで導入されたspring-boot-starter-data-jpaのバージョンは1.5.9.RELEASEで、その中に含まれるhibernaneのコア依存hibernaneバージョンは5.0.12.Finalで、このバージョンでOptimistic LockExceptionクラスを除去したので、上のエラーが発生しました.
ソリューション:
調べたところ、hibernate-coreバージョンが5.0.11.Final依存度にこのクラスが存在するため、デフォルトの依存バージョンを除去し、このバージョンを追加すればいいです.修正後のpom.xmlは以下の通りです.
org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
com.oracle
ojdbc6
${oracle.ojdbc6.version}
org.springframework.boot
spring-boot-starter-data-jpa
hibernate-core
org.hibernate
org.hibernate
hibernate-core
5.0.11.Final
備考:この解決方法は解決策を提案するだけで、高いバージョンの5.0.12.Finalからこのクラスを除去しましたが、公式は他の方法で対応する操作を実現することは間違いないです.作者はまだ分かりません.