Hibernate檢索策略

兩類(1):立即查詢:

根據(jù)id查詢,調(diào)用get方法,一調(diào)用get方法馬上發(fā)送語句查數(shù)據(jù)庫



(2)延遲查詢:

根據(jù)id查詢,調(diào)用load方法,調(diào)用load查詢不會馬上發(fā)送語句查詢數(shù)據(jù)庫,只有得到對象的值(不是id的其他值)的時候才會發(fā)送語句查詢數(shù)據(jù)庫,一直沒用則不會發(fā)送sql語句。

Customer customer = session.load(Customer.class,1);

customer.getCid();//此時也不會查詢

customer.getCustName();//此時執(zhí)行查詢操作


(一)類級別延遲查詢:根據(jù)id查詢返回實(shí)體類數(shù)據(jù),調(diào)用Load方法不會馬上發(fā)送數(shù)據(jù)

(二)關(guān)聯(lián)級別查詢:

查詢某個客戶,再根據(jù)客戶的所有聯(lián)系人。查詢客戶所有聯(lián)系人的過程是否需要延遲,稱為關(guān)聯(lián)延遲。


關(guān)聯(lián)級別延遲操作:

在映射文件中進(jìn)行配置:

1.在set標(biāo)簽上設(shè)置屬性(1)fetch:值select;(2)lazy:值true(延遲,為默認(rèn));false(效率低);extra:及其延遲(效率最高,要什么給什么)

<set name="setLinkMan" fetch="select" lazy="true"/>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容