- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 加载策略 上讲回顾 一对多关系基于外键关联,外键字段在哪个表? 一对多的关系属性为什么是Set集合接口?而不是具体集合类? 一对多的关系属性映射配置中key标签用来指定什么? 目 标 1、Hibernate对象状态 2、Hibernate加载策略 3、Hibernate中外键维护 Hibernate对象状态 临时状态 持久状态 脱管状态 new get() load() save() saveOrUpdate() delete() evict() close() clear() update() saveOrUpdate() 1、使用new操作符实例化 2、与数据库表中的记录没有任何关联 3、与Session没有任何关系 Hibernate对象状态 临时状态 持久状态 脱管状态 new get() load() save() saveOrUpdate() delete() evict() close() clear() update() saveOrUpdate() 1、在数据库中有与之关联的记录 2、和Session实例关联 3、持久状态对象与数据库中的记录同步 Hibernate对象状态 临时状态 持久状态 脱管状态 new get() load() save() saveOrUpdate() delete() evict() close() clear() update() saveOrUpdate() 1、和临时状态的对象类似,只是多了个持久化标识值 2、不再和Session相关联 3、脱管对象一定有由持久状态对象转化而来 Hibernate对象状态 临时状态 持久状态 脱管状态 下面的dept对象经历了哪些状态? Hibernate对象状态 试问:执行到第22行时dept对象处于哪种状态? 试问:执行完毕后,数据库中该部门的地址是否修改?为什么? Hibernate加载策略 加载员工对象时还想对员工关联的部门对象也检索,应怎么办? Hibernate加载策略 立即加载 延迟加载 预先抓取 批量加载 同时使用 同时使用 为了提高效率,节省资源,Hibernate提供了多种数据加载策略 Hibernate加载策略 立即加载 加载对象时,马上将关联的对象也加载进来 对需要加载的关联对象属性设置为lazy=false 一对一默认的加载方式为立即加载 Hibernate加载策略 Hibernate加载策略 延迟加载 加载对象时,并不会将关联的对象也加载进来 对需要延迟加载的关联对象属性设置为lazy=true 多对一、一对多、多对多默认的加载方式为延迟加载 Hibernate加载策略 可以不设置lazy属性 延迟加载的属性对象若处于脱管状态则不能访问 Hibernate加载策略 预先抓取 加载对象时,也一并会将关联的对象加载进来 对需要预先抓取的关联对象属性,设置为fetch=join Hibernate加载策略 相对于立即加载产生的SQL语句要少 inverse属性作用 inverse属性作用 执行上面代码,观察结果 外键为NULL,信息丢失 inverse属性作用 inverse中文意思反转,默认值为false inverse=true 表示外键维护交给对方即多这方负责 inverse=false 表示外键维护不交给对方,仍由一方负责 inverse属性作用 解决方式一:映射文件中inverse属性改变为false 而代码不需要修改 inverse属性作用 解决方式二:映射文件不改变 而代码需要修改 总结 1、Hibernate对象状态 2、Hibernate加载策略 3、Hibernate中外键维护
您可能关注的文档
- “一带一路”的文明解读(精华版).ppt
- 《“互联网+”行动计划》解读(精华版).ppt
- 《2016育种学课件》第十六章 转基因技术与作物育种.pptx
- 《Hibernate框架教学课件》T01 Hibernate简介.ppt
- 《Hibernate框架教学课件》T02 一对一关系.ppt
- 《Hibernate框架教学课件》T03 多对一关系.ppt
- 《Hibernate框架教学课件》T04 一对多关系.ppt
- 《Hibernate框架教学课件》T06 多对多关系.ppt
- 《Hibernate框架教学课件》T07 HQL查询.ppt
- 《Hibernate框架教学课件》T08 QBC查询.ppt
- 2025高考信息类文本阅读复习课课件.pptx
- 高三一轮复习之小说专题备考策略课件.pptx
- 2024高考语文议论文之叙议结合专题复习课件.pptx
- 外研三起英语六年级下册Module5 unit2课件.pptx
- 5.14.2.3千姿百态的动物世界(第三课时) 课件 生物苏教版八年级上册.pptx
- 新人教版英语三年级下册Unit 5Old toys Part A 第2课时 Let's learnListen and chant课件.pptx
- 2.2.1 动物细胞培养 课件 人教版生物选择性必修3.pptx
- 2.3.2 胚胎工程技术及其应用 课件 人教版生物选择性必修3.pptx
- 3.4 蛋白质工程的原理和应用(1课时) 课件 人教版生物选择性必修3.pptx
- 5.14.1.1五彩缤纷的植物世界(第一课时) 课件 生物苏教版八年级上册.pptx
文档评论(0)