第5章 高级对象关系映射.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章高级对象关系映射第5章高级对象关系映射

Hibernate ORM 最佳实践 第5章 高级对象关系映射 回顾 了解Hibernate事务 理解数据库并发操作 事务隔离级别 掌握Hibernate的并发控制 目标 使用动态类进行关系映射 使用组件component进行关系映射 映射值类型的集合 一个持久化类对应多个表的映射 利用动态类关系映射 动态类 注意: 示例代码 示例代码 使用组件映射 并不是所有的类都映射实体,当所关联的类不作为实体,只是某个类的属性类型而已,可以将它设计成为组件component 示例代码 问题 如果我想从Address类得到Student的信息,怎么办? 动态组件 与动态类相似,不需要编写出组件类,直接在映射文件中利用dynamic-component定义。动态组件的类型使用Map类型。 代码 映射值类型集合 理解 某个实体属性是个集合,其中每个元素是值类型 实现集合映射方式 set方式映射值类型集合 运行 list方式映射值类型集合 list方式中增加了list-index,用于设置值类型集合所对应表中的索引列 运行 map方式映射值类型集合 Map集合中每一个元素包含一对键对象和值对象,用键对象和值对象进行映射。 运行 映射组件类型集合 集合中每一个元素是组件类。 示例代码 持久化类对应多张表 一个持久化类对应多个表,在映射文件里使用class属性 entity-name来命名不同的实体,对应不同的表。 示例代码 运行 总结 使用动态类进行关系映射 使用组件component进行关系映射 映射值类型的集合 一个持久化类对应多个表的映射 Hibernate ORM Hibernate ORM 不用Java写持久化POJO类,直接在xml中表示这些持久化类.Hibernate在运行 时利用xml解析器动态生成持久化类. ①由于没有编写POJO类,在映射文件中,标签class name=…使用entity-name属性 代替name属性, 表明由xml解析器来动态生成类. ②利用动态类进行数据存取时,对于save、update、delete、load函数,增加一个 string类型参数, 指明动态类的全名。 当然也可以设置Session的实体模式:EntityMode.MAP(动态)、EntityMode.POJO(POJO类模式) ③实体属性是以HashMap的形式来存放的。 我们发现无POJO类 学生 地址 将地址单独存在没有 任何意义,仅仅作为 学生的属性而已。 可以将它设计成为组件,无须 设计成为实体类(对象标识)。 ①组件类无id标识,同时不用映射到单独表; ②在学生的映射表中,使用component定义所需要的组件类型; ③如果组件类不需要Java编写出来,而是在xml文件中描述,该组件 称为动态组件,在映射表中使用dynamic-component描述。 学号 姓名 组件类无 映射表 组件类 修改Student.hbm.xml Hibernate提供以下方式:set 、bag、list、map、array等 举例:假设每个学生都有多个外号alias student alias FK 集合中的元素对应在表中哪列 检索按照降序排列 设置索引列,整型 键映射 值映射 ①由于组件类不是实体,没有id区别,把组件类中所有属性结合起来作为唯一区分标志, 但重写方法hashCode ()和equals()。 ②使用composite-element来指明组件类,property指明组件类的属性。 举例:假设每个学生有多个地址 描述集合中每个元素组件类 举例:一个班主任带多名学生,一个学生只有一位班主任;学生分为毕业和在校两种 FK FK 同样类对应不同实体映射不同表

文档评论(0)

enxyuio + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档