Hibernate ORM (Hibernate Object Relationship Mapping), Hibernate处理对象关系映射时,对于对象间关联关系的方式主要有三种,分别是一对一(one-to-one),一对多(one-to-many),多对多(many-to-many),还有一种是多对一(many-to-one),但由于这与一对多只是方向相反,所以在这里认定一对多与多对一的处理方式是一致的;而对于对象间关联关系的方向有两种,一种是单向,另一种则是双向,单向意味着从一方实体能够查找到另一方实体,而反过来,从另一方实体则无法查找一方实体,双向则意味着不论是从一方还是另一方来看,都能从当前方实体查找到对方实体;对于对象间关联关系的实现方式有两种,一种是在某一方实体对应的数据表中添加外键用于标识两者之间的关联关系,如对于一对一的关联关系,会在某一方的数据表中添加一个外键标识符字段,用来保持两者的一对一关联关系,另一种就是将两方实体的关联关系独立出来一张关联关系表,用来保持两者的关联关系,如多对多关联关系,通常的做法是在数据库中建立第三张表,用来保持两者的多对多关联关系。所以对于不同的关联关系方式,不同的关联关系方向和不同的关联关系方向实现,在配置文件的书写和数据表的创建上会有所不同,基本上述三种关联关系的不同,进行组合,会产生出十二种不同的持久化实体间关联关系的实现方式,当然对于某一个特定的关联关系方向也会有一些特殊且优化的处理,后面会一一讲到。最后我还会对持久化实体间关于继承关系映射的配置与处理进行讲解。为了将重点放在持久化实体间关联关系的处理上,这里我会假定只有两个持久化实体,分别是Husband和Wife,而且它们都只有主键标识符和名字这两个简单的属性。不论对于哪种关联关系方式,都会使用这两个持久化实体来进行讲解,所以为了易于理解,你可以这样理解这些概念,对于一对一的关联关系,认为这是指代一夫一妻制,而对于一对多关联关系,认为这是一夫多妻或一妻多夫制,而对于多对多的关联关系来说,认为这是多夫多妻制。这并不代表现实中的需求,也不表示是对现实世界事物的完全反映,但我说过我在这里会将重点放在持久化实体间关联关系处理上,所以对于你的具体需求你可以参考这些选择最合适你项目需要的处理方式。在讲解每一种处理方式时,我都会附上这种方式的源代码,以及数据表和在添加数据时发出的sql语句截图来说明每一种方式的不同之处。
分享到:
相关推荐
Hibernate orm 实现原理 主要讲解了关于hibernate 的一些知识
附光盘 第二张源代码,,后续上传,作者是:李晓军等,后面我会续发其他章节.
Hibernate ORM 5.3.7.Final User Guide hibernate 5.3.7版本的用户手册,全英文
NULL 博文链接:https://dreamzhong.iteye.com/blog/1205496
NULL 博文链接:https://dreamzhong.iteye.com/blog/1200430
Hibernate ORM 4.2.0 正式版发布,附件中是网盘下载地址
这是一个hibernateORM一对多映射
该系统将采用Java语言作为开发语言,并且使用Spring MVC框架、Hibernate ORM框架和MySQL数据库等技术来构建。此外,还将采用HTML、CSS和JavaScript等前端技术来设计用户界面。 系统的主要功能包括用户注册、登录、...
hibernate-orm-master
Hibernate稳定版(hibernate-release-5.6.2.Final.zip),Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
从hibernate官网下载的hibernate-orm-4.3.9的源代码
hibernate-orm-3.2.zip
NULL 博文链接:https://dreamzhong.iteye.com/blog/1200915
Hibernate 5.2.7 官方文档英文网页版
NULL 博文链接:https://dreamzhong.iteye.com/blog/1200387
Hibernate源码(hibernate-orm-main.zip)Source Code: Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。 它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
各种包,官网慢,使用直接倒入一些简单JAR就可以了,谢谢支持
已经迁移到 Hibernate Core 4.0 的用户(非JPA)可能已经注意到,以前大家熟知的构造 SessionFactory 的方法已经不推荐使用了:
NULL 博文链接:https://dreamzhong.iteye.com/blog/1201459
NULL 博文链接:https://dreamzhong.iteye.com/blog/1203023