Hibernate错误集锦及解决办法1

1.case by: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
网络上方法:
1.hibernate-jpa-2.0-api-1.0.0.Final和ejb3-persistence有冲突,如果升级到 Hibernate3.5
那么可以把ejb3-persistence干掉
2解决办法:删除对Java EE 5 Libraries的使用。
问题原因:javaee.jar中的部分类与hibernate-jpa-2.0-api-1.0.0.Final.jar存在版本冲突。
OneToMany.orphanRemoval()Z解决,和思考
转自(http://yifanxiang.blog.163.com/blog/static/500008342010427936238 /)
在整合和写oa时,发现一个问题,新的版本不一定是稳定的版本,可能存大n多bug.
就目前而言,比较好用的版本是:
spring2.5,hibernate3.3,struts2.1.12(当前目前都可以用annotation)
原因(spring2.5主包集中,好用一些,用spring3.0.2也没问题,
hibernate3.5 的javax.persistence.OneToMany.orphanRemoval()Z 现在都没解决
struts2.com.opensymphony.xwork2.util.TextUtils 的问题,最好是加入struts2.1.12里的xwork包,还不如用struts2.1.12)
以下是出现的问题:
5:使用MyEclipse创建JavaEE5.0的Web项目,在使用Hibernate3.5.1的注解功能时出现错误:
java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z 。
我程序出现找个错误,主要是在建立关系之后,如果实体,没有通过注解建立关系,就不会出现错误。
单个的hibernate3.5.2用起来没有任何问题,一结合spring3.0就报错。
解决办法:降低 hibernate的版本为3.3。

问题原因:javaee.jar中的部分类与hibernate-jpa-2.0- api-1.0.0.Final.jar存在版本冲突。
但是如果删除了Java EE 5 Libraries,写程序会有很大麻烦.
多次测试,用了好多版本,
后面还是降低 hibernate的版本为3.3
(其它的方法无解决,下了最新的Hibernate3.5.2也不行,)这个合spring的版本无关。
6.org.hibernate.MappingException: Unknown entity: com.lovo.cq.po.User
用老版本spring2.5时
如果你的po写在com.lovo.cq.po里,但是在beans.xml里
<property name="packagesToScan">
            <list>
                <value>com.lovo.cq</value>
            </list>
        </property>
写成这样就会出错。
改成
<property name="packagesToScan">
            <list>
                <value>com.lovo.cq.po</value>
            </list>
        </property>
写成这样就会出错。

新版本的spring3.0.2就不会报错
2,Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity
网上方法:1.:加入Hibernate文件夹下的ejb3-persistence.jar

相关推荐