论坛首页 Java企业应用论坛

强制加载(Hibernate.initialize(Object proxy) )

浏览 2311 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-08-21   最后修改:2009-08-24
我们用的框架是:spring hibernate seam jsf (richFaces facelet )

当页面上的父类里面有子类集合时会发生懒加载异常。例如:

hbm文件:

   <set name="familyMembers" cascade="all" inverse="false"  fetch="select" lazy="true">
   	<key column="APPOINTID_"></key>
   	<one-to-many class="FamilySocietymembers"/>
   </set>


public class AppointCadreMove extends PK{

   	/**
	 * 家庭成员及重要社会关系
	 */
	private Set<FamilySocietymembers> familyMembers;
}


当在点击AppointCadreMove 列表中的某一条书籍时就发生隐形懒加载异常,进入到form页面后点击FamilySocietymembers的相关操作就会发生隐形的懒加载异常。解决办法当在点击列表某一条记入的时候出发一个acitonListener 从数据库从新查一遍在查询的过程中利用hibernate的 强制加载(Hibernate.initialize(Object proxy) )来处理
代码如下:
AppointCadreMove cadreMovePs = cadreMoveDao.getEntityById(id);
Hibernate.initialize(cadreMovePs.getFamilyMembers());
Hibernate.initialize(cadreMovePs.getApointRemoveReason());
这样就相当于把全局的lazy=“true” 修改为lazy="false" 问题解决 偶了。
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics