dwr 中hibernate的查询时加载所有的关联对象及延迟加载问题

xiaoxiao2026-08-19  25

我们有一个one-many的两个关联类。前台通过dwr根据one端的Id去取many端的list。

dwr.xml的配置文件如下:(dwr与spring整合)

<convert converter="bean" match="cn.cric.model.Role" /> <convert converter="bean" match="cn.cric.model.Department" /> <create javascript="RoleDWR" creator="spring"> <param name="beanName" value="roleManagerImpl" /> <include method="findRoleByDpId" /> </create>

 当执行查询的时候,dwr会根据convert元素配置的bean,将该值对象的所有属性,及其这些属性的所有属性,所有属性的属性,都以穷举的方式取出来。这样将是数据库操作的一个灾难。

 

正确的配置方法为::在配置convert元素时,使用exclude和include参数

     include:允许加载的属性。

     exclude:不允许加载的属性。

<convert converter="bean" match="cn.cric.model.Role" > <!-- 配置该类中允许加载的属性 --> <param name="include" value="id,department,roleName,rolePurView,total"/> </convert> <convert converter="bean" match="cn.cric.model.Department" /> <create javascript="RoleDWR" creator="spring"> <param name="beanName" value="roleManagerImpl" /> <include method="findRoleByDpId" /> </create>

 如此以来,当我们查询many端的数据时。就只会去查询我们所定义的类中的属性了。

如果查询时报延迟加载问题,DWR官方建议我们使用hibernate的openSessionInViewFilter。

转载请注明原文地址: https://www.6miu.com/read-5051465.html

最新回复(0)