错误及解方案.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
错误及解方案

failed to lazily initialize a collection of role: com.ccy.valueBean.Coustomer.accounts, no session or session was closed 解决方案: 1、设置lazy=false 如果是用annotation,则配置如下 @OneToMany( ???targetEntity = CourseAuthorizationItem.class, ???cascade = {CascadeType.PERSIST, CascadeType.MERGE}, ???mappedBy = course,?fetch=FetchType.EAGER ??) 将fetch类型设置成直接获取 2、就是使用filter,过滤所有的链接 如果在使用filter的时候,要配置事务处理,否则会导致session处于只读状态而不能做修改、删除的动作 web-app filter filter-namehibernateFilter/filter-name filter-class org.springframework.orm.hibernate.support.OpenSessionInViewFilter /filter-class /filter filter-mapping filter-namehibernateFilter/filter-name url-pattern*.do/url-pattern /filter-mapping /web-app ? ? ? ? failed to lazily initialize a collection of role: XXXXXX, no session or session was closed 例如:failed to lazily initialize a collection of role: com.gtc.wzgl.model.User.roles, no session or session was closed 这个异常大致意思是说在多对一的时候(并且lazy=false),对象的实例失败,多数出现的情况有 1、粗心造成 实例对象类名写错之类的 2、逻辑错误 如之前就已经传递过来一个实体对象,然后调用实体对象的方法时牵涉到1对多的情况,但此时SESSION已经关闭,所以根本无法进行一对多的操作。 3、设计到跨度的问题: 这样打比方有多个实体对象,他们直接或则间接的有关联。比如有4个实体,分别是广告信息、广告、广告问答题、广告商:他们之间的关系为: 广告商 1:n 广告 广告 1:n 广告问答题 广告商 1:n 广告商信息 大家可以看到广告和广告商信息是没有直接关系的。但我要添加广告的时候我就必须将广告商的实体做为条件。那么这么一来广告商信息可能间接的就必须用上。下面看我的操作: ad(广告),subject(题目) ???? Ad ad = new Ad(); ???? ad.setAdProd(adform.getAdProd()); ???? ad.setIndustry(industry); ???? ad.setAdPicture(pagefile.getFileName()); ???? ad.setAdFlack(adform.getAdFlack()); ???? ad.setAdDv(dvfile.getFileName()); ???? ad.setAdContent(adform.getAdContent()); ???? ad.setGray(gray); ???? ad.setAdDate(new Date()); ???? ad.setOnlinetime(new Long(0)); ???? //以上为广告的基本信息填写,而重要的是看下面一句,在这里我的思路是subjectFormList是一个动态提交的表单,里面有若干个广告问答题。我将这些问答题变为一个Set,然后作为ad的一个属性。 ???? SetSubject subjectset=getSubjectSet(subjectFormList,ad); ???? ad.setSubjects(subjectset); //然后提交,makePersistent是一个封装的方法,用途就是save()啦。addao是一个DAO,里面有ADUS。 addao.makePersistent(ad); 表面上看来很符合逻辑,只要我们在ad的映射里面加上对subject的级联更新就可以完成这项操作。但实际上会发生我们意想不到的问题,来让我们看一下getSubjectSet()的内容: publ

文档评论(0)

wst34008 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档