hibernate常见问题及处理.doc

hibernate常见问题及处理.doc

ID:55261298

大小:15.50 KB

页数:2页

时间:2020-05-08

hibernate常见问题及处理.doc_第1页
hibernate常见问题及处理.doc_第2页
资源描述:

《hibernate常见问题及处理.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Hibernate常见异常1.1net.sf.hibernate.MappingException当出现net.sf.hibernate.MappingException:Errorreadingresource:…异常时一般是因为映射文件出现错误。1.2当出现net.sf.hibernate.MappingException:Resource:…notfound是因为XML配置文件没找到所致,有可能是放置目录不正确,或者没将其加入hibernate.cfg.xml中。2.net.sf.hibe

2、rnate.PropertyNotFoundException当出现net.sf.hibernate.PropertyNotFoundException:Couldnotfindasetterforpropertynameinclass…时,原因一般是因为XML映射文件中的属性与对应的Java类中的属性的getter或setter方法不一致。3.org.hibernate.id.IdentifierGenerationException当出现org.hibernate.id.Identifier

3、GenerationException:idsforthisclassmustbemanuallyassignedbeforecallingsave():异常时,一般是因为元素配置不正确,元素缺少其子元素的配置引起。解决方案:元素映射了相应数据库表的主键字段,对其子元素,其中class的取值可以为increment、identity、sequence、hilo、native……等,更多的可

4、参考hibernate参考文档,一般取其值为native。具体可参考2.2.2.1小节。4.adifferentobjectwiththesameidentifiervaluewasalreadyassociatedwiththesession当出现adifferentobjectwiththesameidentifiervaluewasalreadyassociatedwiththesession时,一般是因为在hibernate中同一个session里面有了两个相同标识但是是不同实体。有如下

5、几种解决方案:(1)使用session.clean(),如果在clean操作后面又进行了saveOrUpdate(object)等改变数据状态的操作,有可能会报出"Foundtworepresentationsofsamecollection"异常。(2)使用session.refresh(object),当object不是数据库中已有数据的对象的时候,不能使用session.refresh(object)因为该方法是从hibernate的session中去重新取object,如果session

6、中没有这个对象,则会报错所以当你使用saveOrUpdate(object)之前还需要判断一下。(3)session.merge(object),Hibernate里面自带的方法,推荐使用。再次碰到:adifferentobjectwiththesameidentifiervaluewasalreadyassociatedwiththesession这个错误我一共遇到过两次,一直没有找到很好的解决方案,这个错误产生原因相信大家都知道,因为在hibernate中同一个session里面有了两个相同

7、标识但是是不同实体.一开始按网上说的用session.merge(Object)报了一个错,可能是没有用好,改用session.clear();session.update(user);这样就OK了,方法为:packageorg.springframework.orm.hibernate3.support;...publicvoidmodifyByMerge(Useruser){Sessionsession=getHibernateTemplate().getSessionFactory().g

8、etCurrentSession();session.clear();session.update(user);}...项目用的是spring+hibernate所以得用getHibernateTemplate().getSessionFactory().getCurrentSession();得当前Session5.SQLGrammerException,CouldnotexecuteJDBCbatchupdate当出现SQLGrammerException,CouldnotexecuteJD

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。