鍍金池/ 問(wèn)答/Java  C  網(wǎng)絡(luò)安全/ hibernate的load()延遲加載為什么要返回代理對(duì)象呢?

hibernate的load()延遲加載為什么要返回代理對(duì)象呢?

下面是我看到的關(guān)于getload的區(qū)別.

使用load:
如果類級(jí)別的lazy被設(shè)置為true,那么會(huì)返回代理對(duì)象,調(diào)用出getId之外的任何方法時(shí),在實(shí)際抓取。
如果類級(jí)別的lzay被設(shè)置為false,那么會(huì)立即查詢,并返回實(shí)際對(duì)象。不會(huì)返回代理對(duì)象。
使用get:
不管lazy設(shè)置為何,立即抓取,不會(huì)返回代理對(duì)象。
值得注意的是,即使已經(jīng)實(shí)際抓取對(duì)象,但如果該對(duì)象的有集合屬性,那么默認(rèn)返回的仍然是代理集合類。不管是get還是load。

我的疑惑是, 為什么當(dāng)lazy=true時(shí), 要返回代理對(duì)象呢?

回答
編輯回答
兔囡囡

不然 “l(fā)azy” 體現(xiàn)在哪里

2017年2月26日 16:15
編輯回答
夏木

返回的代理對(duì)象是空的,也就是沒(méi)有數(shù)據(jù),節(jié)省內(nèi)存。當(dāng)真正需要數(shù)據(jù)時(shí)才加載數(shù)據(jù),所以叫懶加載

2018年4月1日 14:27