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

如何解決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| 久久国产精品一二三区| 两性色午夜视频免费网站| 国产三级黄在线观看| 亚洲欧美二区中文字幕| 欧美生活一区二区三区| 精品亚洲一区二区三区四| 精品日韩电影在线观看| 欧美亚洲国产精品综合在线| 久久国产精品欧美熟妇| 九七青青草视频在线观看| 久久精品国产亚洲av清纯 | 欧美在线观看日韩精品| 国产国语激情对白在线| 日韩在线中文字幕三区| 丰满人妻被黑人猛烈进入| 亚洲清纯唯美激情四射| 日本熟妇一区二区三区在线视频| 午夜少妇伦理一区二区| 激情五月婷婷久久av| 日本特黄特色高清免费大片| 日韩在线视频精品一区| 岛国少妇av之中文字幕| 在线免费观看国产黄色av| 亚洲日本精品免费在线观看| 欧美精品亚洲精品日韩| 亚洲av二区三区成人| 日本免费一区二区三区视频观看 | 久久精品国产一区二区三区不卡| 午夜影院在线免费观看三区| 亚洲精品在线观看第一页| 国产女主播在线观看免费观看| av色狠狠一区二区三区| 禁止18岁以下观看的视频| 国产麻豆精品传媒av| 91麻豆国产福利在线| 男人午夜影视在线观看| 久久中文字幕一区二区三区| 国产av一区二区三区久久| 国产日本韩国三级在线| 97国产成人精品视频免费|