您的位置:首页 > 大数据 > 人工智能

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

2014-06-27 18:43 639 查看
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.zznode.inms.pdm.data.ProjectBatchUpdateTask.devicePrjChangeTasks, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:97)
at org.hibernate.collection.PersistentSet.size(PersistentSet.java:114)


原因:在hibernate的映射关系中由于延迟加载,之前的操作使session已经关闭,所以加载set属性时无可用session

解决办法:在映射文件中设置set属性 lazy='false'

<set name="devicePrjChangeTasks"  lazy="false" cascade="delete" inverse="true">
<!-- 主键对应的关联表外键 -->
<key column="prj_update_task_id"></key>
<!-- 关联表 -->
<one-to-many class="com.zznode.inms.pdm.data.ProjectUpdateTemp"/>
</set>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐