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