日期:2014-05-20  浏览次数:20708 次

[hibernate]在一对多的情况下,如果关系表数据量太大,怎么办?
怎么防止关系表数据量查出来太大呢?
我在<set 中是放入了 outer-join="true" 这样的参数。

------解决方案--------------------
这样看你业务需求来建立单向还是双向关系,单向时当然查的少,再个需要的话加上延迟加载
------解决方案--------------------
默认延迟加载,需要关联的时候写hql 用fetch关联
------解决方案--------------------
探讨
可以不可以实现内连接呢?

------解决方案--------------------
在多的那一方 

加上 lazy="false"

XML code

<many-to-one name="bookType" class="com.bookshop.hibernate.pojo.BookType" fetch="select" [color=#FF0000]lazy="false">[/color]
            <column name="Type" not-null="true" />
        </many-to-one>

------解决方案--------------------
XML code

<many-to-one name="bookType" class="com.bookshop.hibernate.pojo.BookType" fetch="select" lazy="false">
      <column name="Type" not-null="true" />
</many-to-one>

------解决方案--------------------
探讨
我个人觉得一对多并不是很好用。。多对一还好用一些,感觉。

------解决方案--------------------
探讨
一对多,还是不能控制对多的那边的控制,我加了batch-size好像还是不起作用。

------解决方案--------------------
hibernate 里 只能 lazy=true了。一对很多是个特别烦的问题,hibernate在这方面应该有更好的处理机制。iBatis就可以自定义可被加载的子表内容和深度。