版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Hibernate第五天注解的實體關(guān)聯(lián)映射Hibernate的緩存機制單向的one-to-many@OneToMany注解:是指示在多的一方使用1的一方的主鍵作為其外鍵,關(guān)聯(lián)1的一方@JoinColumn指明在多的一方關(guān)聯(lián)1的一方的外鍵名稱單向的many-to-one@ManyToOne@JoinColumn在多的一方引用1的一方的變量getter方法上加上以上兩個注解@ManyToOne表示在本類對應(yīng)的數(shù)據(jù)庫表中生成關(guān)聯(lián)1的一方主鍵的外鍵其中@JoinColumn中的name表示當(dāng)前實體bean對應(yīng)的數(shù)據(jù)庫表與1的一方的數(shù)據(jù)庫表關(guān)聯(lián)的外鍵名稱雙向的one-to-many在1的一方,使用@OneToMany注解
其中mappedBy的值對應(yīng)另一方對本實體bean的引用變量在多的一方,使用@ManyToOne注解和@JoinColumn注解,其中@JoinColumn指示在多的一方對應(yīng)的數(shù)據(jù)庫表中生成外鍵關(guān)聯(lián)1的一方。雙向many-to-many@ManyToMany注解@JoinTable在雙向Many-to-Many關(guān)系映射中,包含兩方面,擁有方和被擁有方(inverse一方)。在擁有方指明通過哪張表來和被擁有方維護(hù)映射關(guān)系。被擁有方使用@ManyToManyCascadeType.REFRESH:級聯(lián)刷新,當(dāng)多個用戶同時作操作一個實體,為了用戶取到的數(shù)據(jù)是實時的,在用實體中的數(shù)據(jù)之前就可以調(diào)用一下refresh()方法!CascadeType.REMOVE:級聯(lián)刪除,當(dāng)調(diào)用remove()方法刪除A實體時會先級聯(lián)刪除B的相關(guān)數(shù)據(jù)!CascadeType.MERGE:級聯(lián)更新,當(dāng)調(diào)用了Merge()方法,如果A中的數(shù)據(jù)改變了會相應(yīng)的更新B中的數(shù)據(jù),CascadeType.PERSIST:級聯(lián)保存,當(dāng)調(diào)用了Persist()方法,會級聯(lián)保存相應(yīng)的數(shù)據(jù)CascadeType.ALL:包含以上所有級聯(lián)屬性。什么是緩存緩存是介于物理數(shù)據(jù)源與應(yīng)用程序之間,是對數(shù)據(jù)庫中的數(shù)據(jù)復(fù)制一份臨時放在內(nèi)存中的容器,其作用是為了減少應(yīng)用程序?qū)ξ锢頂?shù)據(jù)源訪問的次數(shù),從而提高了應(yīng)用程序的運行性能。Hibernate在進(jìn)行讀取數(shù)據(jù)的時候,根據(jù)緩存機制在相應(yīng)的緩存中查詢,如果在緩存中找到了需要的數(shù)據(jù)(我們把這稱做“緩存命
中"),則就直接把命中的數(shù)據(jù)作為結(jié)果加以利用,避免了大量發(fā)送SQL語句到數(shù)據(jù)庫查詢的性能損耗。緩存策略供應(yīng)商提供了HashTable緩存,EHCache,OSCache,SwarmCache,jBoss
Cathe2,這些緩存機制,其中EHCache,OSCache是不能用于集群環(huán)境(Cluster
Safe)的,而SwarmCache,jBoss
Cathe2是可以的。HashTable緩存主要是用來測試的,只能把對象放在內(nèi)存中,EHCache,OSCache可以把對象放在內(nèi)存(memory)中,也可以把對象放在硬盤(disk)上。緩存分類一、Session緩存(又稱作事務(wù)緩存,一級緩存):Hibernate內(nèi)置的,不能卸除。緩存范圍:緩存只能被當(dāng)前Session對象訪問。緩存的生命周期依賴于Session的生命周期,當(dāng)Session被關(guān)閉后,緩存也就結(jié)束生命周期。二、SessionFactory緩存(又稱作應(yīng)用緩存,二級緩存):使用第三方插件,可插拔。緩存范圍:緩存被應(yīng)用范圍內(nèi)的所有session共享,不同的Session可以共享。這些session有可能是并發(fā)訪問緩存,因此必須對緩存進(jìn)行更新。緩存的生命周期依賴于應(yīng)用的生命周期,應(yīng)用結(jié)束時,緩存也就結(jié)束了生命周期,二級緩存存在于應(yīng)用程序范圍。一級緩存的管理和使用數(shù)據(jù)放入緩存:1.
save()。當(dāng)session對象調(diào)用save()方法保存一個對象后,該對象會被放入到session的緩存中。2.
get()和load()。當(dāng)session對象調(diào)用get()或load()方法從數(shù)據(jù)庫取出一個對象后,該對象也會被放入到session的緩存中。3.
使用HQL和QBC等從數(shù)據(jù)庫中查詢數(shù)據(jù)。一級緩存崗的清鏟除1.ev冠ic系t()將指辰定的危持久積化對付象從寶緩存朽中清降除,壞釋放痕對象魔所占葉用的賀內(nèi)存則資源太,指寫定對巧象從使持久兇化狀摔態(tài)變羨為脫辭管狀追態(tài),沈從而枯成為晨游離隱對象勺。2.潤c刑le色ar其()將緩?fù)嬷袆t的所匠有持孩久化稿對象美清除商,釋帳放其閑占用挎的內(nèi)逢存資販源。其他沫操作1.建c有on憑ta驗in穿s(躺)判斷秤指定誤的對姿象是完否存氣在于首緩存路中。2.賀f毅lu凝sh仇()刷新爛緩存莫區(qū)的扭內(nèi)容傻,使釘之與術(shù)數(shù)據(jù)采庫數(shù)峰據(jù)保倆持同祝步。二級稀緩存席的配總置、冤管理柳和使雙用當(dāng)我劃們重稼啟一末個Se辱ss貪io赴n,第茄二次灶調(diào)用lo矛ad或者ge賭t方法郵檢索無同一端個對錘象的艙時候推會重胳新查敬找數(shù)懶據(jù)庫灑,會對發(fā)se煉le偽ct語句決信息。原因最:一高個se蘭ss借io伙n不能部取另期一個se犯ss圖io潛n中的白緩存牙。性能賭上的片問題王:假磁如是估多線壟程同脈時去蛋取Ca播te秧go掙ry這個蔬對象帝,lo工ad一個徐對象右,這語個對瘦像本擱來可壇以放威到內(nèi)搖存中姐的,逝可是歲由于健是多醫(yī)線程則,是吧分布鉆在不民同的se粒ss雙io擔(dān)n當(dāng)中違的,滴所以錄每次啟都要驢從數(shù)塊據(jù)庫配中取櫻,這職樣會策帶來化查詢昨性能浪較低百的問慈題。解決章方案曲:使弊用二趴級緩狠存。二級俱緩存1.什么慶是二牽級緩得存?Se袖ss超io械nF搖ac宴to籠ry級別泰的緩慰存,誦可以遲跨越Se察ss譜io伶n存在愧,可然以被鄭多個Se撥ss廚io元n所共役享。2.適合威放到施二級狼緩存筍中:(1)經(jīng)廉常被釣訪問(2)改杯動不始大(3)數(shù)綢量有億限(4)不陣是很棵重要泰的數(shù)聲據(jù),火允許渡出現(xiàn)渡偶爾睛并發(fā)拾的數(shù)關(guān)據(jù)。這樣傭的數(shù)念據(jù)非驗常適早合放翠到二癥級緩許存中歉的。用戶尼的權(quán)帥限:迅用戶語的數(shù)向量不祖大,葬權(quán)限職不多球,不幸會經(jīng)辨常被躬改動蘿,經(jīng)紫常被榮訪問伐。實現(xiàn)眠原理Hi登be朋rn芬at捉e如何雅將數(shù)頂據(jù)庫弄中的前數(shù)據(jù)異放入然到二甘級緩剖存中吊?注陶意,西你可償以把故緩存娛看做屠是一葉個Ma田p對象犯,它攝的Ke狂y用于付存儲斬對象OI童D,Va昌lu逝e用于配存儲PO扛JO。首被先,采當(dāng)我吹們使淚用Hi蠢be月rn霸at密e從數(shù)雨據(jù)庫責(zé)中查伶詢出植數(shù)據(jù)臟,獲數(shù)取檢太索的何數(shù)據(jù)族后,Hi久be秩rn融at夜e將檢智索出藝來的診對象梳的OI售D放入呆緩存吧中ke鑒y中,壘然后予將具扭體的PO暢JO放入va愿lu林e中,丸等待漫下一挪次再嫂次向運數(shù)據(jù)意查詢系數(shù)據(jù)打時,Hi豈be肚rn遭at感e根據(jù)態(tài)你提胡供的OI奴D先檢冒索一綿級緩免存,甘若有述且配蒸置了談二級煉緩存壁,則辟檢索憤二級虎緩存吐,如臂果還避沒有歪則才揀向數(shù)俊據(jù)庫咱發(fā)送SQ鬼L語句啦,然炸后將太查詢浩出來叢的對主象放鄰入緩覽存中架。開啟魔二級消緩存1、修環(huán)改:<!邊--使用校二級栽緩存--與><p命ro輛pe普rt協(xié)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候>鍵<商!-嚇-設(shè)置憲緩存竄的類樓型,目設(shè)置第緩存壩的提使供商--哄>"></pr紋op擇er短ty姻>在實溉體類數(shù)中加狼入注犧解需要捐導(dǎo)包殺:li既b\南op源ti嚴(yán)on宇al搭\e久hc禽ac笨he\li戴b\繳op控ti拍on賤al懼\e渾hc燥ac仿he\li晚b\孔o(hù)p致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女a(chǎn)d默認(rèn)捆使用濤二級睛緩存諒,就愁是當(dāng)?shù)懿橐惶葌€對棋象的端時候恢,它同先會悄去二戰(zhàn)級緩依存里恢面去絨找,腔如果散找到蔬了就摘不去宿數(shù)據(jù)條庫中糊查了飲。It屢er脾at局or默認(rèn)紗的也掃會使侍用二煉級緩宋存,邁有的俊話就域不去歪數(shù)據(jù)獸庫里擺面查聽了,軋不發(fā)準(zhǔn)送se并le藝ct語句御了。Li踢st默認(rèn)號的往魄二級怪緩存劍中加居數(shù)據(jù)介,假網(wǎng)如有么一個qu幅er繭y,把虹數(shù)據(jù)胖拿出笑來之宰后會咬放到鳥二級頂緩存擺,但歌是執(zhí)座行查效詢的短時候擋不會醉到二改級緩析存中經(jīng)查,藏會在擇數(shù)據(jù)斥庫中罩查。葵原因且每個qu砍er郵y中查候詢條擠件不疊一樣兆。也可暑以在飾需要欲被緩師存的擇對象騰中hb構(gòu)m文件冒中的<c似la寄ss王>標(biāo)簽疼下添鎖加一江個<c篇ac讓he鋸>子標(biāo)腐簽:<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進(jìn)e嫩us籌ag熔e=頁"r礦ea鳴d-游on眠ly乳"/田><id債n漢am度e="p灰ar奪tI口d"枕c風(fēng)ol繳um識n=酷"p怕ar哪t_筑id除"><ge農(nóng)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謹(jǐn)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叫l(wèi)u免mn煩="傘pr奏od慚uc卻t_叔id肝"共/></cl李as棗s></hi吵be踏rn雞at罵e-掌ma爐pp趴in把g>存在接一對跪多的掉關(guān)系響,想斬要在票在獲促取一艦方的構(gòu)時候賢將關(guān)組聯(lián)的掛多方馬緩存優(yōu)起來勸,需要迷在下悲面幾剪個位盞置添否加添慕加<c臣ac哄he惹>子標(biāo)簽烏,不洽然Hi內(nèi)be臉rn認(rèn)at解e只會繳緩存OI否D。位置0、一風(fēng)的一費方在hb副m中的<c差la界ss詢>下面貫添加<c嘆ac液he貫>位置1、一琴的一涂方在hb坡m中的掛集合課下面芳添加<c犧ac薄he雖>位置2、多致的一混方在hb燭m中的<c達(dá)la涉ss滴>下面扎添加<c炮ac篇he貴>查詢旱緩存竭的配珠置、虹管理賠和使威用1、查申詢緩存堅及應(yīng)敵用的滋場合它是條針對HQ稀L語句倚的緩具存(命只在凝以HQ慘L方式擱進(jìn)行刮查詢桌時產(chǎn)撫生)不適命用于鼻數(shù)據(jù)潑變更多頻繁喬、查疤詢條針件相批同的帶場合2、啟坐用查詢番緩存Hi痛be末rn其at教e的查拿詢緩李存默有認(rèn)是撕關(guān)閉絡(luò)的,輩可以誰通過芬下面薪的操有作打糊開:在中幅:<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<災(zāi)/p駝ro掘pe絮rt屠y>1、在執(zhí)行qu業(yè)er融y.舅li糧st幫()方法喚查詢個時首炮先檢嘴查是晨否配誦置了放查詢法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 爐渣出售合同范例
- 礦山卡車合同范例
- 吊裝車租用合同范例
- 賓館共同經(jīng)營合同范例
- 礦權(quán)抵押合同范例
- 大型廠區(qū)出租合同范例
- 室內(nèi)鋪磚合同范例
- 公路圍欄維修合同范例
- 代加工茶葉合同范例
- 會議邀請嘉賓合同范例范例
- 國開機考《建筑工程質(zhì)量檢驗》
- 軍隊文職招聘考試-數(shù)量關(guān)系100題
- 2023年黑龍江高中地理學(xué)業(yè)水平考試高頻考點
- 生產(chǎn)作業(yè)環(huán)境監(jiān)測報告
- 預(yù)防接種異常反應(yīng)培訓(xùn)課件
- 公路工程施工安全環(huán)保綜合檢查表
- 2022-2023學(xué)年貴州省遵義市播州區(qū)高一年級上冊學(xué)期期末考試數(shù)學(xué)試題【含答案】
- 上海多層廠房造價指標(biāo)
- 急性肺水腫的應(yīng)急預(yù)案
- 教練場地技術(shù)條件說明
- 2023年春季高考英語試題(上海卷)
評論
0/150
提交評論