hibernate清除二級(jí)緩存 Hibernate為什么提供了延遲加載?起什么作用?
Hibernate為什么提供了延遲加載?起什么作用?提高效率,主要是對(duì)屬性(在數(shù)據(jù)庫(kù)中存在相應(yīng)的表)進(jìn)行延遲加載(load),在第一次查詢(xún)的時(shí)候,只查詢(xún)當(dāng)前的表,當(dāng)用到延遲加載的對(duì)象時(shí)(非延遲加載會(huì)查
Hibernate為什么提供了延遲加載?起什么作用?
提高效率,主要是對(duì)屬性(在數(shù)據(jù)庫(kù)中存在相應(yīng)的表)進(jìn)行延遲加載(load),在第一次查詢(xún)的時(shí)候,只查詢(xún)當(dāng)前的表,當(dāng)用到延遲加載的對(duì)象時(shí)(非延遲加載會(huì)查詢(xún)所有關(guān)聯(lián)屬性的表),會(huì)先從緩存中去找延遲加載的對(duì)象(如果session已經(jīng)關(guān)閉,會(huì)拋出SessionClosedException),如果對(duì)象已經(jīng)在緩存中,則直接從緩存獲取,如果對(duì)象不在緩存中,則進(jìn)入數(shù)據(jù)庫(kù)查找,所以,延遲加載是為了提高效率,如果在hibernate映射文件lazy設(shè)置成false,用load則和用get效果一樣