2013年7月3日 星期三

Hibernate 延遲加載

在Hibernate中,

延遲加載是一個很常用的技術,

它可以在程式需要時才去調用資料庫內的對象,

避免過早加載,也可防止載入過多用不到的資源,

減少記憶體的消耗,

默認情況下,Hibernate對於其對象的關聯對象和集合類都使用延遲加載,



在映射文件中,有關<set>、<list>、<map>都預設lazy="true"延遲加載,

而關聯的部分,像是多對一、一對一、多對多等也都預設lazy="true",

如果有需要直接加載也可設定lazy="false"取消延遲加載。

在程式執行時,

Hibernate會使用PersistentSet、PersistentList、PersistentMap等接口來實現物件中的集合類,

這些接口其實就是代理對象,

等到真的有需要時才去資料庫調用對象,

並加載到物件中。

沒有留言:

張貼留言