在Hibernate中使用Lazy="false" 的困惑

09-02-02 hulumao
在项目中使用hibernate做为持久层,Lazy="false"这个东西呢既好又不好。好的是:我们不用在写过多的DTO或VO之类的JavaBean,实现起来也比较方便。直接对象点属性(object.property1.property2....)就OK了。不好的是:有一个Lazy="false"它就会多执行一条甚至多全SQL语句。随着数据表的逐渐增加,lazy这个东西越来越多,但又控制不住使用它。搞得系统反应有点慢,更危险的是有关联的数据错一个,程序就会报找不到对象。唉!我知道hibernate可以配置抓取的深度(我设的是4),但还是有点慢。

<many-to-one name="purchaseOrder" class="hk.com.ablegroup.erp.domain.PurchaseOrder" fetch="select">

<column name="PURCHASE_ORDER_ID" lazy="false"/>

</many-to-one>

不知道各位在项目中有使用lazy这个东西吗?对待这个问题怎么看?

    

4
hulumao
2009-02-04 13:46
初次发贴,不知道没人回贴是什么问题。难道是因为提的问题表述不清楚,还是提的问题跟本就没有意义呢?搞不懂!

yellowcat
2009-06-06 12:40
查询的时候直接用hql动态抓吧!!

left join fetch

猜你喜欢