欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何解決Hibernate懶加載-創(chuàng)新互聯(lián)

這篇文章主要介紹了如何解決Hibernate懶加載,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

阿巴嘎ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

所謂懶加載(lazy)就是延時(shí)加載,延遲加載。

什么時(shí)候用懶加載呢,我只能回答要用懶加載的時(shí)候就用懶加載。

至于為什么要用懶加載呢,就是當(dāng)我們要訪問的數(shù)據(jù)量過大時(shí),明顯用緩存不太合適,因?yàn)閮?nèi)存容量有限,為了減少并發(fā)量,減少系統(tǒng)資源的消耗,我們讓數(shù)據(jù)在需要的時(shí)候才進(jìn)行加載,這時(shí)我們就用到了懶加載。

例如,有一個(gè)對(duì)象是Employee,還有一個(gè)對(duì)象是Department。顯然,對(duì)于Employee相對(duì)Department來說,是多對(duì)一的關(guān)系;而對(duì)于Department相對(duì)Employee來說,是一對(duì)多的關(guān)系。當(dāng)我們查詢Employee對(duì)象的時(shí)候,如果希望通過employee對(duì)象的屬性department查詢到所對(duì)應(yīng)的Department,那么是會(huì)拋出異常的。這是因?yàn)閼屑虞d的存在,在session關(guān)閉之后,hibernate又向數(shù)據(jù)庫發(fā)出一次請(qǐng)求,結(jié)果就拋出異常了。

下面總結(jié)的是解決這個(gè)問題的四種方式:

1.顯式初始化(在查詢方法內(nèi)部)

要查詢某員工屬于哪個(gè)部門的時(shí)候,需要對(duì)Department進(jìn)行預(yù)先查詢

使用語句

Hibernate.initialize(Department.class);

如何解決Hibernate懶加載

2.修改對(duì)象關(guān)系文件,將lazy改寫lazy=false,即關(guān)閉懶加載

以上兩種方法,確實(shí)可以解決問題,但是缺點(diǎn)是無論后面是否使用該對(duì)象,hibernate都會(huì)向數(shù)據(jù)庫發(fā)出SQL語句請(qǐng)求數(shù)據(jù),造成不必要的性能浪費(fèi)。

3.使用過濾器(web項(xiàng)目)

①獲取session的方式必須使用getCurrentSession

②特殊的關(guān)閉session方式

public void doFilter(ServletRequest request, ServletResponse response, 
   FilterChain arg2) throws IOException, ServletException { 
  // TODO Auto-generated method stub 
  Session session = null; 
  Transaction tx = null; 
  try { 
   session = HibernateUtil.getCurrentSession(); 
   tx = session.beginTransaction(); 
   arg2.doFilter(request, response);//請(qǐng)求一直在走 
   tx.commit(); 
  } catch (Exception e) { 
   // TODO: handle exception 
   if(tx != null){ 
    tx.rollback(); 
   } 
  }finally{ 
   //特殊的關(guān)閉方式 
   HibernateUtil.closeCurrentSession(); 
  } 
 }

4.在SSH框架中,使用spring提供的openSessionView

其原理和第三種方法中使用Filter類似,只不過這個(gè)filter是spring提供的。使用時(shí)只需要在web.xml文件配置如下:

<!-- 使用spring解決懶加載問題 --> 
 <filter> 
  <filter-name>OpenSessionInViewFilter</filter-name> 
  <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> 
 </filter> 
 <filter-mapping> 
  <filter-name>OpenSessionInViewFilter</filter-name> 
  <url-pattern>/*</url-pattern> 
 </filter-mapping>

第3和第4中方法也能解決懶加載的問題,其中第4種方法也是目前使用較多的。但是這兩種方法也是有缺點(diǎn)的,缺點(diǎn)就是延長了session關(guān)閉的時(shí)間,session的生命周期變長。沒有使用該方法之前,session是在查詢完數(shù)據(jù)之后,就被關(guān)閉了;而現(xiàn)在,session的關(guān)閉是在一次web請(qǐng)求的最后才關(guān)閉。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何解決Hibernate懶加載”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

新聞標(biāo)題:如何解決Hibernate懶加載-創(chuàng)新互聯(lián)
URL標(biāo)題:http://aaarwkj.com/article38/cchgsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、外貿(mào)建站、自適應(yīng)網(wǎng)站網(wǎng)站排名網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
亚洲欧美综合另类久久| 精品久久久久久久久无| 一区二区不卡日韩av| 日韩中文字幕视频一区| 97免费在线视频观看| 国产精品久久久99| 五月婷久久精品国产亚洲av| 日本一区二区三区不卡在线| 亚洲av日韩综合一区尤物| 亚洲免费av一区二区| 深夜av免费在线观看| 亚洲激情av在线观看| 国产精品成人av在线网站| 亚洲老熟女老妇老女人| 变态另类日韩欧美高清| 日韩不卡的在线视频| 免费观看久久黄色大片| 精品久久久久久久久极品| 亚洲精品黄色在线观看| 欧美日韩另类激情免费| 国内久久婷婷综合五月趴| 中文字幕成人资源网站| av影片在线观看亚洲天堂| 日本新任女教师在线播放| 日韩一区二区高清看片| 99精品国产高清一区二区三区| av一区二区三区高潮| 校花出白浆视频一区二区三区| 一区二区三区欧美黑人| 日本九州不卡久久精品一区| 中文字幕乱码十国产乱码| 日韩电影一区二区在线观看中文字幕| 午夜福利成人在线免费观看| 97视频网站在线观看| 国产91日韩欧美在线观看| 福利在线视频一区二区| 一区二区亚洲欧美精品| 欧美黄片精品在线观看| 国产伦理自拍视频在线观看| 欧美精品一区二区久久不卡| 亚洲欧美日韩激情另类|