1.讀取時(shí)機(jī)不同(當(dāng)lazy=true的時(shí)候)
load是采用延遲機(jī)制(load語句不讀庫,等使用非主鍵時(shí)才去讀庫),而get不采用延遲機(jī)制(get語句時(shí)馬上讀庫);
2.搜索不到數(shù)據(jù)時(shí)的情況
當(dāng)搜索的數(shù)據(jù)不存在的時(shí)候,load依然會(huì)返回一個(gè)對(duì)象,在你使用該對(duì)象的非主鍵數(shù)據(jù)時(shí),會(huì)拋出異常;
當(dāng)搜索的數(shù)據(jù)不存在的時(shí)候,get會(huì)返回一個(gè)null;
備注:網(wǎng)上看來說load比get更節(jié)省資源;
我做過一個(gè)例子,即兩個(gè)線程,1號(hào)線程把數(shù)據(jù)讀出來,把session關(guān)掉。過幾秒2號(hào)線程也去讀相同的記錄,這時(shí)2號(hào)線程并沒有搜索庫(沒有顯示出HQL語句),不管你用load還是get
結(jié)論:我覺得它們兩個(gè)都有使用到緩存,至于更深入的我沒有去研究了