Hibernate中设置懒加载效率高还是在映射文件中将Ftech设置为join效率高


假如有三张表:用户表(Users),商品表(Goods),出价表(Bid)

使用Struts1.x+Spring2.x+Hibernate3.x搭建一个小的项目 xxxx

在Goods表中存在一个Set集合用来存放出价集合:

   在表对应的实体文件中:

private Set bids = new HashSet(0);

     在映射文件中:

<set name="bids"  inverse="true" cascade="all">
<key>
<column name="goods_id" not-null="true" />
</key>
<one-to-many class="y2ssh.wzq.xmal4.entity.Bid" />
</set>

  Hibernate3.x的默认为懒加载

那么是使用懒加载  查询出价表中的信息

效率高一些还是 在映射文件中设置 fetch="join" 外连接查询出价信息效率高一些?

为什么?

两种方式有什么不同!










    

 

不会有问题,其实在Hibernate.initialize(goods.getBids()); 这句话之后,就算关闭了session,也是可以查询goods.getBids()里面的内容,,因为已经强制实例化了。

懒加载是说当你加载一条记录时,不会通过外键查询其相对应的set集合。
fetch="join",是指当你查询一条记录的相关集合时,是通过使用select * from a join on b方式进行查询,而不是先找到b中对应的记录,再一条条加载。。

默认就是懒加载的