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