2013年7月4日 星期四

Hibernate get() vs load()

在Hibernate中載入數據常使用這兩個方法,

在看了一些書之後,

對其中的差異有了比較明確的瞭解,

查詢順序

get():

Hibernate會先確認id是否存在,然後在session緩存中尋找,

沒有的話找二級緩存,也沒有就查詢資料庫,

還是沒有就返回null。

2013年7月3日 星期三

Hibernate 延遲加載

在Hibernate中,

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

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

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

減少記憶體的消耗,

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

Hibernate Query list() vs iterator()

初次使用Hibernate時,

常會使用到這兩個查詢方式,

網路查詢到的資料有些不是很正確,

這邊分享一些自己看Hibernate實戰的心得,

查詢方式

list():

只會送出一條SQL,將結果集都存在一級和二級緩存(有開的話),