O/R 映射

目前为止我们已经通过应用 Hibernate 见识过十分基础的 O/R 映射了,但是还有三个更加重要的有关映射的话题需要我们更详细的探讨。这三个话题是集合的映射,实体类之间的关联映射以及组件映射。

集合映射

如果一个实例或者类中有特定变量的值的集合,那么我们可以应用 Java 中的任何的可用的接口来映射这些值。Hibernate 可以保存 java.util.Map, java.util.Set, java.util.SortedMap, java.util.SortedSet, java.util.List 和其它持续的实例或者值的任何数组的实例。

集合类型 映射和描述
java.util.Set 它和 \<set> 元素匹配并且用 java.util.HashSet 初始化。
java.util.SortedSet 它和 \<set> 元素匹配并且用 java.util.TreeSet 初始化。sort 属性可以设置成比较器或者自然排序。
java.util.List 它和 \<list> 元素匹配并且用 java.util.ArrayList 初始化。
java.util.Collection 它和 \<bag> 或者 \<ibag> 元素匹配以及用 java.util.ArrayList 初始化。
java.util.Map 它和 \<map> 元素匹配并且用 java.util.HashMap 初始化。
java.util.SortedMap") 它和 \<map> 元素匹配并且用 java.util.TreeMap 初始化。sort 属性可以设置成比较器或者 自然排序。

对于 Java 的原始数值 Hibernate 采用<primitive-array>支持数组,对于 Java 的其它数值 Hibernate 采用<array>支持数组。然而它们很少被应用,因此我也就不在本指导中讨论它们。

如果你想要映射一个用户定义的集合接口而这个接口不是 Hibernate 直接支持的话,那么你需要告诉 Hibernate 你定义的这个集合的语法,这个很难操作而且不推荐使用。

关联映射

实体类之间的关联映射以及表之间的关系是 ORM 的灵魂之处。对象间的关系的子集可以用下列四种方式解释。关联映射可以是单向的也可以是双向的。

映射类型 描述
Many-to-One 使用 Hibernate 映射多对一关系
One-to-One 使用 Hibernate 映射一对一关系
One-to-Many 使用 Hibernate 映射一对多关系
Many-to-Many 使用 Hibernate 映射多对多关系

组件映射

作为变量的一员实体类很可能和其它类具有相关关系。如果引用的类没有自己的生命周期并且完全依靠于拥有它的那个实体类的生命周期的话,那么这个引用类因此就可以叫做组件类。

组件集合的映射很可能和正常集合的映射相似,只会有很少的设置上的不同。我们可以在例子中看看这两种映射。

映射类型 描述
Component Mappings 类的映射对于作为变量的一员的另外的类具有参考作用。

_________________________________________________________________________________________________________________

转载于:https://www.cnblogs.com/ikei/p/7098144.html

4.Hibernate O/R 映射相关推荐

  1. 微软获得O/R映射技术专利 业界担忧阻碍技术进展

    一组微软员工申报了O/R映射技术的专利. 该专利将对业界现有的O/R映射产品造成怎样的影响目前尚不清楚,但有业界专家担忧微软将借此专利打压竞争对手. 这份专利档案是被网友无意间在专利信息查询网站Fre ...

  2. 怎么把arraylist集合的值放在实体类的属性了_原创 | 使用JPA实现DDD持久化-O/R映射元数据:类级映射-实体和值对象...

    类级映射:实体和值对象 可以被持久化的类包括实体和值对象两大类. 一.实体映射 通过给一个类添加@Entity逻辑注解,告知JPA这是一个可以持久化的实体类. 请注意@Entity逻辑注解不可以继承. ...

  3. 【SSH系列】---Hibernate的基本映射

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 开篇前言 ...

  4. Hibernate之继承映射

    Hibernate的继承映射可以理解为两个持久化类之间的继承关系    例如老师和人之间的关系 持久化类  Person类 public  class  Person { private   Inte ...

  5. Hibernate 主键维护策略和hibernate 常见的映射类型

    先配置Product.hbm.xml,最重要是在这个文件中 <?xml version="1.0" encoding="UTF-8"?> <! ...

  6. Hibernate 实体关联关系映射----总结

    http://lavasoft.blog.51cto.com/62575/39398 Hibernate 实体关联关系映射----总结 花了三天的业余时间,终于写完了Hibernate关联关系映射的所 ...

  7. (6) Hibernate的集合映射

    转载地址: http://developer.51cto.com/art/201202/314944.htm 本文主要针对Hibernate的Set.List.Array.Map.Bag五个集合映射进 ...

  8. 【数据库系统】O/R映射

    O/R映射 O/R映射,即对象-关系映射,指从UML类模型映射到RDB模式的设计,这一映射必须要考虑到关系模型的限制,难点在于要将类图的描述性语义转换为逻辑模式设计中的过程性解决方案(类的某些内部描述 ...

  9. Hibernate多对多映射 - 连接表

    Hibernate多对多映射 - 连接表 今天我们将使用XML和注释配置来研究Hibernate多对多映射.之前我们看过如何在Hibernate中实现One To One和One To Many映射. ...

最新文章

  1. Unity优化手机游戏学习教程
  2. python pandas DataFrame 排序
  3. Oracle数据库对象,同义词、序列、视图、索引
  4. 总结 贪心算法_这几道经典例题帮你轻松搞透贪心算法
  5. Lucene 源码分析之倒排索引(三)
  6. Spring中 @Autowired注解与@Resource注解的区别
  7. nvidia nvlink互联与nvswitch介绍
  8. 银行家算法:解决多线程死锁问题
  9. PetShop之ASP.NET缓存 --one
  10. 只需一个设置命令隐藏 MacBook Pro 浏海
  11. 国二考试报Wps还是c语言,2021 年全国计算机二级增考 WPS Office
  12. 计算机电路电子技术试题答案,数字电子技术试题库及答案解析知识分享
  13. 新装的电脑没有打开图片的软件怎么办?教你打开Windows照片查看器
  14. unity3d 模拟电脑实现_基于Unity3D的焊接仿真自动运条模拟方法与流程
  15. linux内核api作用,内存管理 – Linux内核API get_unmapped_area
  16. 计算机第一级开机密码设置,开机密码怎么设置
  17. 轻量易用的网站bug与性能监控平台——灵雀应用监控平台
  18. 四阶魔方java1002四阶魔方java_4x4四阶魔方一看就懂,超简单入门图文教程2:复原中心块...
  19. 邮箱 万维网通讯 smtp
  20. 3.微信小程序-B站:wxml和wxss文件

热门文章

  1. Python语言编程之LEGB变量作用域法则
  2. 利用VSPD、串口调试助手、Keil做串口调试
  3. INVALID_HANDLE_VALUE的意思和用法
  4. java修改文件的大小限制_Struts2修改上传文件大小限制方法解析
  5. JSP Cookie处理
  6. MySQL-一条sql语句的执行顺序
  7. java.security.cet.CertPathValidatorException: Path does not chain with any of the trust anchors 解决办法
  8. 我对观察者模式的理解,之前一直很乱
  9. php cms 插件开发,phpcms编辑器插件最新版——ckeditor4.5
  10. socket编程listen函数限制连接数的解决方案_网络编程——服务器篇