Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

failed to lazily initialize a collection of role

$
0
0
这个是懒加载异常,就是在查询时没有加载关联表的对象,你读取这个关联对象的时候,hibernate的session已经关闭,所以无法获取对象。
你可以在配置文件里关闭懒加载 lazy=false
 
在某个表自己进行一对多的关系的时候,在hibernate配置文件中,如果这样常规配置:
 <set name="childrens" inverse="true">
            <key>
                <column name="parentid" />
            </key>
            <one-to-many class="Question" />
 </set>
看起来好像没什么,但运行起来,当你getChildrens后,就会出现failed to lazily initialize a collection of role这个错误。
原因可能是当你加载类似于树型结构的类时,需要一次全部加载,而不能让children在parent已经加载后再加载,解决方法是
 <set name="childrens" inverse="true" lazy="false">
            <key>
                <column name="parentid" />
            </key>
            <one-to-many class="Question" />
 </set>
作者:zhujiaxing666666 发表于2013-1-12 15:46:35 原文链接
阅读:51 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>