注解的实体关联映射 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

提交评论