一开始我是这样写的:
<convert match="com.tqsoft.hfoa.pojo.*" converter="hibernate3"></convert>dwr 在转换pojo包下的一个叫CaiWuBaoSong 的类的时候,出现了错误。
从hibernate输出的SQL语句来看,dwr是去转换那些被设置为延迟加载的集合去了,
可是我的converter已经设置成hibernate3了,为什么它还会去转换那些没有初始化的集合??后来我将<convert>改成了这样:
<convert match="com.tqsoft.hfoa.pojo.CaiWuBaoSong" converter="hibernate3"></convert>就没有问题了,这时它不会去转换那些集合。
这是为什么??

解决方案 »

  1.   

    看了一个文档是这样说的:
    使用HibernateBeanConverter也许有点风险,原因如下:
    (1)结构:HibernateBeanConverter不符合MVC模式,所以不能把对象在数据层和表现层之间进行隔离。这个风险可以通过在上面加上独立的bean来减轻。
    (2)性能:DWR试图通过相同的序列化方式来转换所有得到的属性(除了DWR仅仅读JavaBean属性的时候)。所以可能会出现通过HTTP序列化了你的整个数据的情况,通常这并不是你想要的。要减少这一风险,可以使用BeanConverter(HibernateBeanConverter衍生于它)的排除某些属性的功能,如下所示:
       <param name="exclude" value="propertyToExclude1, propertyToExclude2"/>
    HibernateBeanConverter会尝试不去读取没有初始化的属性。
      

  2.   

    HibernateBeanConverter会尝试不去读取没有初始化的属性。问题就在这里啊。hibernate3应该不会去读没有初始化的属性,可是<convert match="com.tqsoft.hfoa.pojo.*" converter="hibernate3"> </convert> 这样配置的时候它却读了。