hibernate常见问题及处理

hibernate常见问题及处理

ID:37724278

大小:53.50 KB

页数:29页

时间:2019-05-29

hibernate常见问题及处理_第1页
hibernate常见问题及处理_第2页
hibernate常见问题及处理_第3页
hibernate常见问题及处理_第4页
hibernate常见问题及处理_第5页
资源描述:

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

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

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

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

4、为native。具体可参考2.2.2.1小节。4.adifferentobjectwiththesameidentifiervaluewasalreadyassociatedwiththesession      当出现adifferentobjectwiththesameidentifiervaluewasalreadyassociatedwiththesession时,一般是因为在hibernate中同一个session里面有了两个相同标识但是是不同实体。      有如下几种解决方案:(1)使用session.clea

5、n(),如果在clean操作后面又进行了saveOrUpdate(object)等改变数据状态的操作,有可能会报出"Foundtworepresentationsofsamecollection"异常。(2)使用session.refresh(object),当object不是数据库中已有数据的对象的时候,不能使用session.refresh(object)因为该方法是从hibernate的session中去重新取object,如果session中没有这个对象,则会报错所以当你使用saveOrUpdate(object)之

6、前还需要判断一下。(3)session.merge(object),Hibernate里面自带的方法,推荐使用。再次碰到:adifferentobjectwiththesameidentifiervaluewasalreadyassociatedwiththesession这个错误我一共遇到过两次,一直没有找到很好的解决方案,这个错误产生原因相信大家都知道,因为在hibernate中同一个session里面有了两个相同标识但是是不同实体.一开始按网上说的用session.merge(Object)报了一个错,可能是没有用好,

7、改用session.clear();session.update(user);这样就OK了,方法为:packageorg.springframework.orm.hibernate3.support;...   publicvoidmodifyByMerge(Useruser){       Sessionsession=getHibernateTemplate().getSessionFactory().                         getCurrentSession();       session.

8、clear();       session.update(user);   }...项目用的是spring+hibernate所以得用getHibernateTemplate().getSessionFactory().getCurrentSession();得当前Session5.SQ

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

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

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