環境:
IDE:Myeclipse6.5
框架:spring3管理hibernate4 配置。
錯誤:
用junit4測試時報:Initial SessionFactory creation failed.java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z 錯誤。
問題原因:jar包衝突
沒有找到orphanRemoval()這個方法
javaee.jar中的javax.persistence.OneToOne這個類5版本是沒有orphanRemoval這個方法的。
而新版的hibernate的hibernate-jpa-api-2.0.jar中的javax.persistence.OneToOne這個類是有orphanRemoval這個方法的,
由於兩個類有相同的類名,系統不能正確的找到。到底是哪個類。
IDE:Myeclipse6.5
框架:spring3管理hibernate4 配置。
錯誤:
用junit4測試時報:Initial SessionFactory creation failed.java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z 錯誤。
問題原因:jar包衝突
沒有找到orphanRemoval()這個方法
javaee.jar中的javax.persistence.OneToOne這個類5版本是沒有orphanRemoval這個方法的。
而新版的hibernate的hibernate-jpa-api-2.0.jar中的javax.persistence.OneToOne這個類是有orphanRemoval這個方法的,
由於兩個類有相同的類名,系統不能正確的找到。到底是哪個類。
解決辦法:
網上有人說把java EE 5 library 升級到6,但是升級完後類似HttpServletRequest 等類就不能用了,需要較大的改動。此方法行不通。
我的解決辦法:
1). 在 你的Myeclipse安裝目錄下搜索 EE_5 找到EE_5 文件夾;
2). 進去EE_5文件夾 右鍵 javaee.jar 打開方式 WINRAR壓縮文件管理器,進去裏面刪除persistence文件夾 這個子文件夾。
3) . 重啓Myeclipse