注解的實體關聯映射 Hibernae的緩存機制_第1頁
注解的實體關聯映射 Hibernae的緩存機制_第2頁
注解的實體關聯映射 Hibernae的緩存機制_第3頁
注解的實體關聯映射 Hibernae的緩存機制_第4頁
注解的實體關聯映射 Hibernae的緩存機制_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Hibernate第五天注解的實體關聯映射Hibernate的緩存機制單向的one-to-many@OneToMany注解:是指示在多的一方使用1的一方的主鍵作為其外鍵,關聯1的一方@JoinColumn指明在多的一方關聯1的一方的外鍵名稱單向的many-to-one@ManyToOne@JoinColumn在多的一方引用1的一方的變量getter方法上加上以上兩個注解@ManyToOne表示在本類對應的數據庫表中生成關聯1的一方主鍵的外鍵其中@JoinColumn中的name表示當前實體bean對應的數據庫表與1的一方的數據庫表關聯的外鍵名稱雙向的one-to-many在1的一方,使用@OneToMany注解

其中mappedBy的值對應另一方對本實體bean的引用變量在多的一方,使用@ManyToOne注解和@JoinColumn注解,其中@JoinColumn指示在多的一方對應的數據庫表中生成外鍵關聯1的一方。雙向many-to-many@ManyToMany注解@JoinTable在雙向Many-to-Many關系映射中,包含兩方面,擁有方和被擁有方(inverse一方)。在擁有方指明通過哪張表來和被擁有方維護映射關系。被擁有方使用@ManyToManyCascadeType.REFRESH:級聯刷新,當多個用戶同時作操作一個實體,為了用戶取到的數據是實時的,在用實體中的數據之前就可以調用一下refresh()方法!CascadeType.REMOVE:級聯刪除,當調用remove()方法刪除A實體時會先級聯刪除B的相關數據!CascadeType.MERGE:級聯更新,當調用了Merge()方法,如果A中的數據改變了會相應的更新B中的數據,CascadeType.PERSIST:級聯保存,當調用了Persist()方法,會級聯保存相應的數據CascadeType.ALL:包含以上所有級聯屬性。什么是緩存緩存是介于物理數據源與應用程序之間,是對數據庫中的數據復制一份臨時放在內存中的容器,其作用是為了減少應用程序對物理數據源訪問的次數,從而提高了應用程序的運行性能。Hibernate在進行讀取數據的時候,根據緩存機制在相應的緩存中查詢,如果在緩存中找到了需要的數據(我們把這稱做“緩存命

中"),則就直接把命中的數據作為結果加以利用,避免了大量發送SQL語句到數據庫查詢的性能損耗。緩存策略供應商提供了HashTable緩存,EHCache,OSCache,SwarmCache,jBoss

Cathe2,這些緩存機制,其中EHCache,OSCache是不能用于集群環境(Cluster

Safe)的,而SwarmCache,jBoss

Cathe2是可以的。HashTable緩存主要是用來測試的,只能把對象放在內存中,EHCache,OSCache可以把對象放在內存(memory)中,也可以把對象放在硬盤(disk)上。緩存分類一、Session緩存(又稱作事務緩存,一級緩存):Hibernate內置的,不能卸除。緩存范圍:緩存只能被當前Session對象訪問。緩存的生命周期依賴于Session的生命周期,當Session被關閉后,緩存也就結束生命周期。二、SessionFactory緩存(又稱作應用緩存,二級緩存):使用第三方插件,可插拔。緩存范圍:緩存被應用范圍內的所有session共享,不同的Session可以共享。這些session有可能是并發訪問緩存,因此必須對緩存進行更新。緩存的生命周期依賴于應用的生命周期,應用結束時,緩存也就結束了生命周期,二級緩存存在于應用程序范圍。一級緩存的管理和使用數據放入緩存:1.

save()。當session對象調用save()方法保存一個對象后,該對象會被放入到session的緩存中。2.

get()和load()。當session對象調用get()或load()方法從數據庫取出一個對象后,該對象也會被放入到session的緩存中。3.

使用HQL和QBC等從數據庫中查詢數據。一級緩存崗的清鏟除1.ev冠ic系t()將指辰定的危持久積化對付象從寶緩存朽中清降除,壞釋放痕對象魔所占葉用的賀內存則資源太,指寫定對巧象從使持久兇化狀摔態變羨為脫辭管狀追態,沈從而枯成為晨游離隱對象勺。2.潤c刑le色ar其()將緩威存中則的所匠有持孩久化稿對象美清除商,釋帳放其閑占用挎的內逢存資販源。其他沫操作1.建c有on憑ta驗in穿s(躺)判斷秤指定誤的對姿象是完否存氣在于首緩存路中。2.賀f毅lu凝sh仇()刷新爛緩存莫區的扭內容傻,使釘之與術數據采庫數峰據保倆持同祝步。二級稀緩存席的配總置、冤管理柳和使雙用當我劃們重稼啟一末個Se辱ss貪io赴n,第茄二次灶調用lo矛ad或者ge賭t方法郵檢索無同一端個對錘象的艙時候推會重胳新查敬找數懶據庫灑,會對發se煉le偽ct語句決信息。原因最:一高個se蘭ss借io伙n不能部取另期一個se犯ss圖io潛n中的白緩存牙。性能賭上的片問題王:假磁如是估多線壟程同脈時去蛋取Ca播te秧go掙ry這個蔬對象帝,lo工ad一個徐對象右,這語個對瘦像本擱來可壇以放威到內搖存中姐的,逝可是歲由于健是多醫線程則,是吧分布鉆在不民同的se粒ss雙io擔n當中違的,滴所以錄每次啟都要驢從數塊據庫配中取櫻,這職樣會策帶來化查詢昨性能浪較低百的問慈題。解決章方案曲:使弊用二趴級緩狠存。二級俱緩存1.什么慶是二牽級緩得存?Se袖ss超io械nF搖ac宴to籠ry級別泰的緩慰存,誦可以遲跨越Se察ss譜io伶n存在愧,可然以被鄭多個Se撥ss廚io元n所共役享。2.適合威放到施二級狼緩存筍中:(1)經廉常被釣訪問(2)改杯動不始大(3)數綢量有億限(4)不陣是很棵重要泰的數聲據,火允許渡出現渡偶爾睛并發拾的數關據。這樣傭的數念據非驗常適早合放翠到二癥級緩許存中歉的。用戶尼的權帥限:迅用戶語的數向量不祖大,葬權限職不多球,不幸會經辨常被躬改動蘿,經紫常被榮訪問伐。實現眠原理Hi登be朋rn芬at捉e如何雅將數頂據庫弄中的前數據異放入然到二甘級緩剖存中吊?注陶意,西你可償以把故緩存娛看做屠是一葉個Ma田p對象犯,它攝的Ke狂y用于付存儲斬對象OI童D,Va昌lu逝e用于配存儲PO扛JO。首被先,采當我吹們使淚用Hi蠢be月rn霸at密e從數雨據庫責中查伶詢出植數據臟,獲數取檢太索的何數據族后,Hi久be秩rn融at夜e將檢智索出藝來的診對象梳的OI售D放入呆緩存吧中ke鑒y中,壘然后予將具扭體的PO暢JO放入va愿lu林e中,丸等待漫下一挪次再嫂次向運數據意查詢系數據打時,Hi豈be肚rn遭at感e根據態你提胡供的OI奴D先檢冒索一綿級緩免存,甘若有述且配蒸置了談二級煉緩存壁,則辟檢索憤二級虎緩存吐,如臂果還避沒有歪則才揀向數俊據庫咱發送SQ鬼L語句啦,然炸后將太查詢浩出來叢的對主象放鄰入緩覽存中架。開啟魔二級消緩存1、修環改:<!邊--使用校二級栽緩存--與><p命ro輛pe普rt協y悉na饅me天="虹hi催be光rn靠at扇e.順ca充ch蘭e.涉us藥e_面se疼co留nd包_l雁ev奸el梯_c潛ac在he梳">襯tr宰ue錦</倡pr暗op障er五ty候>鍵<商!-嚇-設置憲緩存竄的類樓型,目設置第緩存壩的提使供商--哄>"></pr紋op擇er短ty姻>在實溉體類數中加狼入注犧解需要捐導包殺:li既b\南op源ti嚴on宇al搭\e久hc禽ac笨he\li戴b\繳op控ti拍on賤al懼\e渾hc燥ac仿he\li晚b\孔op致ti騙on羅al雷\e愉hc餡ac猛he艦\在實體廟類中更通過答注解肚可以配置殼使用二級恰緩存障:@C饅ac維he笛(u予sa峰ge蘇=端C長ac依he虜Co倡nc凝ur卸re雕nc辜yS戀tr茅at弓eg攪y.竹RE然AD主_W啦RI藏TE中)Lo女ad默認捆使用濤二級睛緩存諒,就愁是當弟查一倘個對棋象的端時候恢,它同先會悄去二戰級緩依存里恢面去絨找,腔如果散找到蔬了就摘不去宿數據條庫中糊查了飲。It屢er脾at局or默認紗的也掃會使侍用二煉級緩宋存,邁有的俊話就域不去歪數據獸庫里擺面查聽了,軋不發準送se并le藝ct語句御了。Li踢st默認號的往魄二級怪緩存劍中加居數據介,假網如有么一個qu幅er繭y,把虹數據胖拿出笑來之宰后會咬放到鳥二級頂緩存擺,但歌是執座行查效詢的短時候擋不會醉到二改級緩析存中經查,藏會在擇數據斥庫中罩查。葵原因且每個qu砍er郵y中查候詢條擠件不疊一樣兆。也可暑以在飾需要欲被緩師存的擇對象騰中hb構m文件冒中的<c似la寄ss王>標簽疼下添鎖加一江個<c篇ac讓he鋸>子標腐簽:<h卵ib某er勸na儲te跌-m蒼ap螞pi剃ng挽p盆ac能ka裂ge境="><cl斜as張s駕na錘me額="P撿ar貫t"鍛t才ab所le旺="度tb固_p突ar凳t_游hq搞l"><ca粱ch進e嫩us籌ag熔e=頁"r礦ea鳴d-游on眠ly乳"/田><id債n漢am度e="p灰ar奪tI口d"枕c風ol繳um識n=酷"p怕ar哪t_筑id除"><ge農ne稻ra遼to貴r鎖cl算as狂s="s桿eq嶼ue濱nc利e"疊><pa蠢ra騎m正na暑me逆="s寸eq沉ue野nc買e"率>s窮eq哀_p蒜ar選t_雜hq扁l<浙/p飽ar障am脂></ge咳ne灘ra都to徐r></id逗><pr謹op會er知ty振n馬am耗e="p若ar際tN雞am濾e"陰c圣ol低um村n=幅"p舉ar具t_局na吳me燃"位/><ma討ny枕-t折o-木on乒e米na待me贏="p旱ro掘du弓ct普"渡co叫lu免mn煩="傘pr奏od慚uc卻t_叔id肝"共/></cl李as棗s></hi吵be踏rn雞at罵e-掌ma爐pp趴in把g>存在接一對跪多的掉關系響,想斬要在票在獲促取一艦方的構時候賢將關組聯的掛多方馬緩存優起來勸,需要迷在下悲面幾剪個位盞置添否加添慕加<c臣ac哄he惹>子標簽烏,不洽然Hi內be臉rn認at解e只會繳緩存OI否D。位置0、一風的一費方在hb副m中的<c差la界ss詢>下面貫添加<c嘆ac液he貫>位置1、一琴的一涂方在hb坡m中的掛集合課下面芳添加<c犧ac薄he雖>位置2、多致的一混方在hb燭m中的<c達la涉ss滴>下面扎添加<c炮ac篇he貴>查詢旱緩存竭的配珠置、虹管理賠和使威用1、查申詢緩存堅及應敵用的滋場合它是條針對HQ稀L語句倚的緩具存(命只在凝以HQ慘L方式擱進行刮查詢桌時產撫生)不適命用于鼻數據潑變更多頻繁喬、查疤詢條針件相批同的帶場合2、啟坐用查詢番緩存Hi痛be末rn其at教e的查拿詢緩李存默有認是撕關閉絡的,輩可以誰通過芬下面薪的操有作打糊開:在中幅:<p維ro有pe查rt掠yna攻me="購hi抽be乎rn樓at宅e.穗ca逆ch臘e.唐us孝e_馳qu探er闊y_脊ca悟ch迅e"壯>t損ru窩e<災/p駝ro掘pe絮rt屠y>1、在執行qu業er融y.舅li糧st幫()方法喚查詢個時首炮先檢嘴查是晨否配誦置了放查詢法

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論