`
Wind_ZhongGang
  • 浏览: 260131 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Hibernate ORM

阅读更多

 

  Hibernate ORM (Hibernate Object Relationship Mapping), Hibernate处理对象关系映射时,对于对象间关联关系的方式主要有三种,分别是一对一(one-to-one),一对多(one-to-many),多对多(many-to-many),还有一种是多对一(many-to-one),但由于这与一对多只是方向相反,所以在这里认定一对多与多对一的处理方式是一致的;而对于对象间关联关系的方向有两种,一种是单向,另一种则是双向,单向意味着从一方实体能够查找到另一方实体,而反过来,从另一方实体则无法查找一方实体,双向则意味着不论是从一方还是另一方来看,都能从当前方实体查找到对方实体;对于对象间关联关系的实现方式有两种,一种是在某一方实体对应的数据表中添加外键用于标识两者之间的关联关系,如对于一对一的关联关系,会在某一方的数据表中添加一个外键标识符字段,用来保持两者的一对一关联关系,另一种就是将两方实体的关联关系独立出来一张关联关系表,用来保持两者的关联关系,如多对多关联关系,通常的做法是在数据库中建立第三张表,用来保持两者的多对多关联关系。所以对于不同的关联关系方式,不同的关联关系方向和不同的关联关系方向实现,在配置文件的书写和数据表的创建上会有所不同,基本上述三种关联关系的不同,进行组合,会产生出十二种不同的持久化实体间关联关系的实现方式,当然对于某一个特定的关联关系方向也会有一些特殊且优化的处理,后面会一一讲到。最后我还会对持久化实体间关于继承关系映射的配置与处理进行讲解。为了将重点放在持久化实体间关联关系的处理上,这里我会假定只有两个持久化实体,分别是Husband和Wife,而且它们都只有主键标识符和名字这两个简单的属性。不论对于哪种关联关系方式,都会使用这两个持久化实体来进行讲解,所以为了易于理解,你可以这样理解这些概念,对于一对一的关联关系,认为这是指代一夫一妻制,而对于一对多关联关系,认为这是一夫多妻或一妻多夫制,而对于多对多的关联关系来说,认为这是多夫多妻制。这并不代表现实中的需求,也不表示是对现实世界事物的完全反映,但我说过我在这里会将重点放在持久化实体间关联关系处理上,所以对于你的具体需求你可以参考这些选择最合适你项目需要的处理方式。在讲解每一种处理方式时,我都会附上这种方式的源代码,以及数据表和在添加数据时发出的sql语句截图来说明每一种方式的不同之处。 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics