博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate Annotation O/RM 映射异常
阅读量:4134 次
发布时间:2019-05-25

本文共 911 字,大约阅读时间需要 3 分钟。

两个异常: java.lang.NoClassDefFoundError: javax/persistence/Cacheable java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z

之所以将他们放在一起说是有原因的,同时此文也算是对该问题的一个总结。
先说第一个异常 java.lang.NoClassDefFoundError: javax/persistence/Cacheable.
其实原因也很明显,说没有找到该类的引用,因为 Cacheable Java Persistence API 2.0 中被规范的一个接口。
解决办法:添加 hibernate-jpa-2.0-api-1.0.0.Final.jar
在说第二个异常 java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z.
此问题出现在使用注解进行一对多的 O/R 映射,大部分网友的说法是因为 javaee.jar 中的部分类与 hibernate-jpa-2.0-api-1.0.0.Final.jar 存在版本冲突导致的,解决的办法是从 Build Path 中移除对 javaEE 的引用。
但事实上不止于此,因为笔者在不存在 javaee.jar 的普通 Java Project 中也出现了这个问题。而且如果在 web 项目中移除 javaEE 也是不易接受的。
解决办法:移除 hibernate-distribution-3.5+ 的引用,改用较稳定的版本,例如: hibernate- distribution-3.3.2.GA-dist 。并且在诸如 3.3.2 等版本下使用 Annotation 进行 O/R 映射是不需要引入 jpa2.0 API 。因此,自然不会出现第一个异常。
总结:具体冲突原因尚不清楚,疑是 Bug 。所以使用一个较为折中的办法,既不会影响 web 程序,又不影响 Annotation 的使用。

 

转载地址:http://nhivi.baihongyu.com/

你可能感兴趣的文章
Serge and Dining Room CodeForces - 1179C(线段树)
查看>>
Sequence II HDU - 5919(主席树)
查看>>
Problem E. Split The Tree HDU - 6504(主席树)
查看>>
[CQOI2009]叶子的染色(树形dp)
查看>>
[HAOI2015]树上染色(树形dp,树形背包)
查看>>
旅游(树形dp求树的最大独立集)
查看>>
[HNOI2003]消防局的设立(贪心)
查看>>
Light bulbs(上海icpc网络预选赛,差分离散化)
查看>>
Stone game(dp计数上海icpc网络预选赛)
查看>>
数糖纸(离散化)
查看>>
D-City HDU - 4496(反向并查集)
查看>>
How Many Answers Are Wrong HDU - 3038(带权并查集)
查看>>
分数调查 HihoCoder - 1515(带权并查集)
查看>>
Zjnu Stadium HDU - 3047(带权并查集)
查看>>
Rochambeau POJ - 2912(带权并查集+暴力枚举)
查看>>
食物链 POJ - 1182(带权并查集模板)
查看>>
Parity game POJ - 1733(带权并查集+离散化)
查看>>
Supermarket POJ - 1456(贪心+线段树)
查看>>
Is It A Tree? POJ - 1308(并查集)
查看>>
Matrix POJ - 3685(二分套二分)
查看>>