在正式說hibernate延遲加載時,先說說一個比較奇怪的現(xiàn)象吧:hibernate中,在many-to-one時,如果我們設(shè)置了延遲加載,會發(fā)現(xiàn)我們在eclipse的調(diào)試框中查看one對應(yīng)對象時,它的內(nèi)部成員變量全是null的(因為這個原因我還調(diào)了好久的代碼?。?,貼張圖給你們感受下:
左邊是設(shè)置延遲加載的調(diào)試圖,右邊是沒設(shè)置延遲加載的示意圖;
ok,估計大家也理解我說什么了,下面就從這個現(xiàn)象進(jìn)作為入口,闡述hibernate延遲加載背后的原理----動態(tài)代理。
一、hibernate的延遲加載與動態(tài)代理
1、hibernate中的延遲加載:get VS load
我們知道,在hibernate方法中,直接涉及到延遲加載的方法有g(shù)et和load,使用get時,不會延遲加載,load則反之。另外,在many-to-one等關(guān)系配置中,我們也可以通過lazy屬性設(shè)置是否延遲加載,這是我們對hibernate最直觀的認(rèn)識。
2、現(xiàn)象解釋----動態(tài)代理機(jī)制
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26