分享

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: XXXX

 Reneek 2016-04-24
  这个异常:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: org.joshua.ss.entity.SysUsers.sysUsersRoleses, no session or session was closed
  1. Exception in thread "main" org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: org.joshua.ss.entity.SysUsers.sysUsersRoleses, no session or session was closed  
  2.     at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380)  
  3.     at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372)  
  4.     at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:365)  
  5.     at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)  
  6.     at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:186)  


原因:在hibernate的映射关系中由于延迟加载,之前的操作使session已经关闭,所以加载set属性时无可用session
解决办法:在映射文件中设置set属性 lazy='false'
  1. <set name="sysUsersRoleses" inverse="true" cascade="all"<span style="color:#FF0000;"> lazy="false"</span>>  
  2.             <key>  
  3.                 <column name="USER_ID" length="32" />  
  4.             </key>  
  5.             <one-to-many class="org.joshua.ss.entity.SysUsersRoles" />  
  6.         </set>  

具体参考:http://fendoubattier./blog/1040236

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多