如何在Hibernate中使用DWR和延迟加载

时间:2014-12-30 09:14:04

标签: hibernate dwr

在Hibernate 3中处理DWR 2.0和延迟加载的最佳方法是什么,即使我在Pojo中使用转换类型=“hibernate3”而不是类型=“bean”并使用LaT加载ManyToOne映射字段。

DWR service configration
-------------------------
<dwr:remote javascript="operationService">
 <dwr:convert type="hibernate3" class="com.model.Enquiry">
  or
 <dwr:convert type="bean" class="com.model.Enquiry">
</dwr:convert>

in POJO
----------
@ManyToOne(fetch=FetchType.LAZY, targetEntity = Port.class)
@JoinColumn(name="LD_PORT")
public Port getLoadPort() {
    return loadPort;
}

DAO Layer

List<Enquiry> enqList =  
getHibernateTemplate().getSessionFactory().getCurrentSession().createCriteria(Enquiry.class)
                                            .list();

在获取查询对象列表时,它在访问JavaScript时返回null到loadPort的值。这是DAO层会话的问题还是其他什么问题?

任何机构都可以让我知道如何处理DWR和Hibernate中的延迟加载的最佳实践?我将感谢您的投入。

1 个答案:

答案 0 :(得分:0)

assumeSession参数添加到转换器中:

<dwr:convert type="hibernate3" class="com.model.Enquiry">
    ....
    <param name="assumeSession" value="true"/>
    ....
</dwr:>

根据你如何设置休眠,你可能还需要这个:

<allow> 
  .... 
  <filter class=" org.directwebremoting.hibernate.H3SessionAjaxFilter"/>
  ....
</allow>

解释here