1.get是立即加載,load是延時加載。
2.get會先查一級緩存,再查二級緩存,然后查數(shù)據(jù)庫,load會先查一級緩存,若沒找到,就創(chuàng)建代理對象,等需要的時候去查二級緩存和數(shù)據(jù)庫(load延時加載特性)。
3.get如果沒有找到會返回null,load如果沒有找到會拋出異常。
4.當(dāng)使用session.load()方法來加載一個對象時,此時并不會發(fā)出SQL語句,當(dāng)前得到的對象時一個代理對象,該對象只保存了實(shí)體對象的id,只有當(dāng)要使用它的時候,才會發(fā)出sql語句,從數(shù)據(jù)庫中去查詢需要的數(shù)據(jù),相當(dāng)于load的延遲加載方式。get就直接的多,當(dāng)我們使用session.get()方法得到一個對象時,不管使用與否,此時都會發(fā)出sql語句去數(shù)據(jù)庫中查找。