环境:
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