Hibernate加载数据失败failed to lazily initialize a collection of role
2014-07-05 13:57
555 查看
在测试获取数据库中的数据或者在页面获取时,有时会遇到这样的错误提示:
其中com.exam.entity.Question.questionAnswer为错误的相关类名,根据实际情况而定。
从错误的字面意思可以发现是延迟加载初始化时遇到了问题。
从错误的提示相关类com.exam.entity.Question.questionAnswer不难看出是Question中的questionAnswer加载失败了。
找到相关的Hibernate映射文件可以发现:
Question映射文件中的questionAnswer
该映射并没有设置lazy,所以这里是使用了默认的lazy=”true”,所以导致在页面获取时,因为session已经关闭,所以获取不到questionAnswer的数据。
所以为了解决这个问题,可以在set的lazy设置为false:
为set设置lazy="false"
failed to lazily initialize a collection of role: com.exam.entity.Question.questionAnswer, no session or session was closed
其中com.exam.entity.Question.questionAnswer为错误的相关类名,根据实际情况而定。
从错误的字面意思可以发现是延迟加载初始化时遇到了问题。
从错误的提示相关类com.exam.entity.Question.questionAnswer不难看出是Question中的questionAnswer加载失败了。
找到相关的Hibernate映射文件可以发现:
Question映射文件中的questionAnswer
<set name="questionAnswer" inverse="true" cascade="delete"> <key column="question_no"/> <one-to-many class="QuestionAnswer"/> </set>
该映射并没有设置lazy,所以这里是使用了默认的lazy=”true”,所以导致在页面获取时,因为session已经关闭,所以获取不到questionAnswer的数据。
所以为了解决这个问题,可以在set的lazy设置为false:
为set设置lazy="false"
<set name="questionAnswer" inverse="true" cascade="delete" lazy="false"> <key column="question_no"/> <one-to-many class="QuestionAnswer"/> </set>
相关文章推荐
- hibernate 延迟加载的错误 failed to lazily initialize a collection of role
- hibernate 懒加载异常分析: failed to lazily initialize a collection of role
- hibernate 延迟加载的错误 failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role: no session or session was closed (Hibernate) 解决方法(延迟加载问题)
- hibernate懒加载的问题,failed to lazily initialize a collection of role
- hibernate 延迟加载的错误 failed to lazily initialize a collection of role
- hibernate 延迟加载的错误 failed to lazily initialize a collection of role
- failed to lazily initialize a collection of role(hibernate一对多或者多对多懒加载问题)
- Hibernate 延迟加载的错误 failed to lazily initialize a collection of role [Hibernate]
- 【转】hibernate懒加载的问题,failed to lazily initialize a collection of role
- org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role:no sessi
- org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role:XXX
- fastjson序列化hibernate查询的数据报错:failed to lazily initialize a collection of role
- Hibernate多对多、一对多查询出现failed to lazily initialize a collection of role
- org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.jav
- org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.eng
- SSH报错之 hibernate.LazyInitializationException: failed to lazily initialize a collection of role: XXXX
- hibernate一对多取到的set集合 failed to lazily initialize a collection of role
- org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role
- fastjson序列化hibernate查询的数据报错:failed to lazily initialize a collection of role