今天我們主要來深索Hibernate延遲加載技術,Hibernate延遲加載技術包括實體對象的延遲加載、集合類型的延遲加載等。
Hibernate延遲加載的對象:
◆hibernate 2針對實體對象和集合
◆hibernate 3同時提供了屬性的延遲加載功能。
其中對集合的延遲加載特性意義最爲重大。
實體對象的Hibernate延遲加載:
在hibernate配置文件中的class指定
集合類型的Hibernate延遲加載:
在set中指定lazy=true
這樣只有實際加載與對象相關聯的集合對象的時候,再通過session從數據庫中加載實際的數據集。
Hibernate.initialize方法可以強制Hibernate立即加載關聯的對象集,例如:
Hibernate.initialize(user.getAddress());
集合類型的緩存:
如果爲某個集合類設定了緩存,如
<set
name
=“address”
table
=“t_address”
lazy
=“true”
……
>
<cache
usage
=“read-only”/>
<key
column
=“user_id”
/>
<one-to-many
class
=“cn.blogjava.TAddress”
/>
</set>
Hibernate對集合類型進行緩存的時候,分兩部分保存。首先是這個集合中所有實體的id列表,其次纔是各個實體對象。