在Hibernate中,
延遲加載是一個很常用的技術,
它可以在程式需要時才去調用資料庫內的對象,
避免過早加載,也可防止載入過多用不到的資源,
減少記憶體的消耗,
默認情況下,Hibernate對於其對象的關聯對象和集合類都使用延遲加載,
在映射文件中,有關<set>、<list>、<map>都預設lazy="true"延遲加載,
而關聯的部分,像是多對一、一對一、多對多等也都預設lazy="true",
如果有需要直接加載也可設定lazy="false"取消延遲加載。
在程式執行時,
Hibernate會使用PersistentSet、PersistentList、PersistentMap等接口來實現物件中的集合類,
這些接口其實就是代理對象,
等到真的有需要時才去資料庫調用對象,
並加載到物件中。
沒有留言:
張貼留言