在Hibernate中,集合類的映射可以延遲初始(Lazy Initialization),在多对一或者一对多中,都可以使用延遲初始,例如:一个用户(user对应user表)有多个email地址(address对应address表),也就是在真正索取該物件的資料時,才向資料庫查詢,就上次例子來說,就是我們在讀取User時,先不取得其中的 addrs屬性中之物件資料,由於只需要讀取User的name屬性,此時我們只要執行一次select即可,真正需要addrs的資料時,才向資料庫要求。在含有集合类的user.hbm.xml中要如下设置:

  <set name="addrs" table="ADDRS" lazy="true">
            <key column="USER_ID"/>
            <element type="string" column="ADDRESS" not-null="true"/>
        </set>
posted on 2007-05-21 12:54  王永庆  阅读(427)  评论(0编辑  收藏  举报