Hibernate中有兩個(gè)極為相似的方法get()與load(),他們都可以通過指定的實(shí)體類與ID從數(shù)據(jù)庫中讀取數(shù)據(jù),并返回對應(yīng)的實(shí)例,但Hibernate不會搞兩個(gè)完全一樣的方法的,它們間的不同在于:
1.如果找不到符合條件的紀(jì)錄,get()方法將返回null.而load()將會報(bào)出ObjectNotFoundEcception.
?。玻?span id="wmqeeuq" class="hilite2">load()方法可以返回實(shí)體的代理類實(shí)例,而get()永遠(yuǎn)只返回實(shí)體類.
3.load()方法可以充分利用二級緩存和內(nèi)部緩存的現(xiàn)有數(shù)據(jù),而get()方法只在內(nèi)部緩存中進(jìn)行查找,如沒有發(fā)現(xiàn)對應(yīng)數(shù)據(jù)將跳過二級緩存,直接調(diào)用SQL完成查找.