hibernate-Hibernate中双向关联和单向关联的意思是什么?

问题描述

Hibernate中双向关联和单向关联的意思是什么?

有老师,学生两个bean,
双向关联就是需要在两个bean的xml文件中都写入关系,例如many to many
单项关联只需要在老师的一方或者学生的一方的配置文件中写入关系即可使用,例如one to many或者many to one

解决方案

这个是关系型数据库中实体之间的关系
1对1
1对多
多对1
多对多

其中的多对多要进行拆分,拆成1对多和多对1
关系的描述就是如何去设置这个主键和外键
1对多的关系可以描述为一个表中有2个域作为一个联合主键

多对多就是1对多和多对1的拆分
往往做一个中间的表这个表的主键就是那个1 对应的表中的主键,将他们拿出来新做一张表

hibernate中的ORM使用这个对象javabean描述的
一张表就是一个javabean
外键就是描述为子对象

解决方案二:

关联,表与表间互相存在映射关系,比如表A的a列对应表B的b列,反之也存在对应关系,而这样的对应关系可以划分为一对一,一对多或多对一,以及多对多。而hibernate的双向关联关系机制可以允许用户通过相应配置为自己的实体对象建立起与表间关系相同的关联关系。当你操作其中一个实体对象时,hibernate会自动根据你设置好的关联关系去验证你的操作的合法性或联动操作存在关联的实体对象。
数据表之间的关联关系,反映到Java的面向对象领域来说,就是对象之间相互引用。单项管理就是对应的Java对象中,ObjectA,ObjectB存在关联关系,但是只有ObjectA对象包含一个ObjectB对象的成员属性,而ObjectB仅仅是自己的属性,而没有引用ObjectA。

时间: 2024-08-22 12:42:34

hibernate-Hibernate中双向关联和单向关联的意思是什么?的相关文章

Java的Hibernate框架中一对多的单向和双向关联映射_java

一.一对多单向关联映射 一对多关系的对象模型在日常生活中也经常看到,就拿学生和班级来说,一个班级里有多个学生,所以班级和学生的关系是一对多的关系,映射到对象模型中,如下图: 对象模型说明了这种一对多的关系是由一的一端来维护的,那么映射成关系模型就是一个班级字段下面会有多个学生,这样就形成了一对多的关系,通过班级能够查询获得学生信息,对应的关系模型如下图: 1.基本配置 有了对象模型接下来就让它们映射为对应的关系代码,在进行关系映射时需要在一的一端添加<one-to-many>标签,另外还需要在

一口一口吃掉Hibernate(五)——一对多单向关联映射

      在上一篇博客<一口一口吃掉Hibernate(四)--多对一单向关联映射>中,介绍了多对一的关联映射,今天就反过来说一下一对多的单向关联映射.       可能有人会对这2篇博客的题目有点混淆不清,跟日常说的关系有点不同.我们日常说的比如父子关系,夫妻关系都是说的双向关系,而现在讨论的则是单向关系,所以也就有了多对一和一对多的说法.       二者的关系其实很简单,只是角度不同而已.比如说学生和班级的关系.如果从学生角度来看,是多对一的关系.而从班级角度来看,则是一对多的关系.说

一口一口吃掉Hibernate(四)——多对一单向关联映射

      Hibernate对于数据库的操作,全部利用面向对象的思维来理解和实现的.一般的单独表的映射,相信大家都没有问题,但是对于一些表之间的特殊关系,Hibernate提供了一些独特的方式去简化它.       今天就来说说多对一的关联映射.       数据库中有多对一的关系,Hibernate自然也有对象的多对一的关联关系.比如用户和用户组,一个用户只属于一个组,一个组有多名用户.我们就可以说用户和用户组的关系就是多对一的关系.用对象的uml图表示一下:       在Hibernat

Hibernate学习(五)一对多单向关联映射

在上一篇博客<一口一口吃掉Hibernate(四)--多对一单向关联映射>中,介绍了多对一的关联映射,今天就反过来说一下一对多的单向关联映射. 可能有人会对这2篇博客的题目有点混淆不清,跟日常说的关系有点不同.我们日常说的比如父子关系,夫妻关系都是说的双向关系,而现在讨论的则是单向关系,所以也就有了多对一和一对多的说法. 二者的关系其实很简单,只是角度不同而已.比如说学生和班级的关系.如果从学生角度来看,是多对一的关系.而从班级角度来看,则是一对多的关系.说法很简单,但是在对象和关系的建立却是

Hibernate从入门到精通(五)一对一单向关联映射

上次的博文中 Hibernate从入门到精通(四)基本映射我们已经讲解了一下基本映射和相关概念,接下来 我们会讲稍微复杂点的映射--关系映射. 关系映射分类 关系映射即在基本映射的基础上处理 多个相关对象和多个相关表之间联系的映射.关系映射从对应关系的角度可以分为如下七种类型:一对一单向关联 一对一双向关联 一对多单向关联 多对一单向关联 一对多双向关联 多对多单向关联 多对多双向关联 接下来博客,我们会分别讲解一下这七种关系映射.今天我们只讲其中的一对一单向关联. 一对一 单向关联 一对一单向

【SSH系列】Hibernate映射-- 多对一单向关联映射

      在hibernate中非常重要的就是映射,在前面的博文中,小编简单的介绍了基本映射,基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用.这个比较简单,但是基础知识还是需要好好掌握的哦,还有一些关联映射,比如user && group,她们之间的关系是一对多,我们知道一个用户只能属于一个组,但是一个组可以包好N多个用户,所以他们之间的关系就是多对一的关系,接着我们来看他们的对象模型以及关系模式.

Java的Hibernate框架中的双向主键关联与双向外键关联_java

一.双向主键关联双向的主键关联其实是单向一对一主键关联的一种特殊情况,只不过要在关联对象的两端的映射文件中都要进行<one-to-one>的配置,另外还要在主映射的主键一端采用foreign外键关联属性. 这里同样使用Person和IdCard来讨论,一个人对应着一个唯一的身份证,而且一个身份证也唯一映射着一个人,所以这就产生了双向的关联关系,Person的主键同样也是IdCard的主键,分别是主键的同时也是外键,这种关联关系成为双向一对一映射,表现到关系模型中可如下图: 图中的两个表采用了主

Hibernate中双向关联加载排序的解决方案

问题:Hibernate的<many-to-many>双向关联中,一方加载另一方时,怎么样达到按自定义规则排序的目的呢? 实例:角色和菜单是多对多的关系,为角色分配菜单后,加载菜单时,我需要按照菜单的ID来排序显示. 解决办法: 1. 通过在hbm配置文件中配置解决,需要自定义比较器. 1) 在多对多的主控端指定sort属性 这里的主控端为role,受控端为menu. role的配置为: <set name="roleMenus" table="ROLE_M

java中Hibernate多对多双向关联的配置

 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任  Hibernate的双向多对多关联有两种配置方法:那我们就来看看两种方案是如何配置的.          一.创建以各自类为类型的集合来关联       1.首先我们要在两个实体类(雇员<Emploee>.工程<Project>)中各自给对方添