多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一

一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多

也就是说一对多和多对一的映射策略是一样的,只是站的角度不同

1.多对一(下面示例人员表(Info),民族表(Nation))  多个人员对应一个民族。要知道,人员表中的外键列nation是对应民族表的主键列code。所以要在Info.hbm.xml中配置nation外键指向民族表。(如下图所示)

一般需要加上cascade="save-update",加这个配置业属性目的是,many表和one表一起更新

2.一对多(下面以人员表(Info)和工作简历(Work)表为例)每个人员对应个工作简历。

首先需要在Info的实体类中加入一个Set<Work> 类型的字段。

然后再Info.hbm.xml中配置一对多。(如下图所示)

<set name="实体类中集合成员的变量名(works)">
<one-to-many class="Work表">
<key>

<column name="InfoCode" ></colum>

</key>
</set>

 3.一对一(人员表与密码表)每个人对应相应的用户密码:(因为外键值设置在login表上,所以在login.hbm.xml中配置信息)

4.多对多

数据库中没有多对多的关系。只有程序里面有。数据库中是使用两个一对多和多对一来实现多对多的。典型的是:中间表
在程序中,如果中间表中没有其它信息,那就可以不用写中间表的实体类。
多对多,还可以用在:用户和角色的关系上。
1.给类加关联对象(集合对象)
2.给hbm.xml配置
<set name="当前类的集合属性" table="中间表">
<key column="中间表中与此表对应的外键"></key>
<many-to-many class="另外多方对象的类名" column="另外多方对象在中间表中的外键"></many-to-many>
</set>

<set name="courses" table="score">
<key column="sno"></key>
<many-to-many class="Course" column="cno"></many-to-many>
</set>

 (双向)

双向多对一关联 是最常见的关联关系。(这也是标准的父/子关联关系。)

<class name="Person"><id name="id" column="personId"><generator class="native"/></id><many-to-one name="address" column="addressId"not-null="true"/>
</class><class name="Address"><id name="id" column="addressId"><generator class="native"/></id><set name="people" inverse="true"><key column="addressId"/><one-to-many class="Person"/></set>
</class>

基于外键关联的双向一对一关联也很常见。

<class name="Person"><id name="id" column="personId"><generator class="native"/></id><many-to-one name="address" column="addressId" unique="true"not-null="true"/>
</class><class name="Address"><id name="id" column="addressId"><generator class="native"/></id><one-to-one name="person" property-ref="address"/>
</class>

转载于:https://www.cnblogs.com/hq233/p/6525219.html

hibernate映射(一对一、一对多、多对一、多对多)配置 【转】相关推荐

  1. Mybatis中的关系映射(一对一,一对多,多对多)

    在网上寻了很久,大多数讲关系性的文章都是大篇幅的去将表照搬上来,本来就很生硬,此文就不在讲述关系性映射的具体实现,转而从浅层来讲讲其概念性. 1.1 关联关系概述 在关系型数据库中,多表之间存在着三种 ...

  2. 【SSH进阶之路】Hibernate映射——一对一单向关联映射(五)

    [SSH进阶之路]Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库. [SSH进阶之路]Hibernate搭建开发环境+简单实例 ...

  3. Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射

    在我们以前的数据库设计中,设计表就不是一件轻松的事情.多种事物之间往往都是有这样那样的关系的.那怎样设计表格,才能既将事情描述明白,又能使数据库设计的比较合理呢?那里我们提供了好多规范,好多约束来满足 ...

  4. mybatis高级映射(一对一,一对多,多对多)

    http://www.cnblogs.com/selene/p/4627446.html 阿赫瓦里 生命对于某些人来说,一直都是美丽的,因为这些人的一生都在为某个梦想而奋斗!!! 博客园 首页 新随笔 ...

  5. mysql中建立一对多映射_Mybatis中的高级映射一对一、一对多、多对多

    学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下mybatis中的高级映射,包括一对一.一对多.多对多,希望多有需要 ...

  6. Hibernate,关系映射的多对一单向关联、多对一双向关联、一对一主键关联、一对一外键关联、多对多关系关联...

    2018-11-10  22:27:02开始写 下图内容ORM.Hibernate介绍.hibername.cfg.xml结构: 下图内容hibernate映射文件结构介绍 下图内容hibernate ...

  7. 初学者易上手的SSH-hibernate04 一对一 一对多 多对多

    这章我们就来学习下hibernate的关系关联,即一对一(one-to-one),一对多(one-to-many),多对多(many-to-many).这章也将是hibernate的最后一章了,用于初 ...

  8. JPA 一对一 一对多 多对一 多对多配置

    1 JPA概述 1.1 JPA是什么 JPA (Java Persistence API) Java持久化API.是一套Sun公司 Java官方制定的ORM 方案,是规范,是标准 ,sun公司自己并没 ...

  9. EF里一对一、一对多、多对多关系的配置和级联删除

    EF里一对一.一对多.多对多关系的配置和级联删除 本章节开始了解EF的各种关系.如果你对EF里实体间的各种关系还不是很熟悉,可以看看我的思路,能帮你更快的理解. I.实体间一对一的关系 添加一个Per ...

  10. 7. MyBatis多表查询 - 一对一 - 一对多 - 多对多

    7. MyBatis多表查询 - 一对一 - 一对多 - 多对多 前言 在前面的篇章,我们已经熟悉了单表查询,下面我们来看看如何进行 多表查询. 数据准备 create database if not ...

最新文章

  1. 鸿蒙应用开发在线体验官网,华为鸿蒙 HarmonyOS 应用开发在线体验网站上线
  2. Qt for Android调用android原生Toast控件
  3. 【清北学堂】 死亡(death)
  4. 【Floyed】【匈牙利算法】导弹(jzoj 1610)
  5. 多线程Thread类创建多线程
  6. android sdk httppost,android6.0SDK 删除HttpClient的相关类的解决方法
  7. Java中的项目的导入导出
  8. 慎用某60软件清理垃圾,导致三星SSD T5不识别了,折腾了一下午,终于弄好了
  9. STM32+AD7705实现电压采集
  10. 六种电平转换的优缺点
  11. 【OpenGL游戏开发之一】MAC OS X And Win7 vs2010 搭建OpenGL
  12. java中的迭代是什么意思_java迭代指的是什么意思
  13. 胃与十二指肠溃疡的食疗方
  14. 使用Adobe Illustrator将EPS编辑为合适的论文图片
  15. RTSP播放器高RTSP兼容推流网页无插件流媒体播放器EasyPlayer-RTSP关于MP4的封装调用流程介绍
  16. 理性讨论:字节跳动跟阿里,哪个环境更适合年轻人?
  17. win10计算机恢复到一天前,Win10恢复电脑(刷新电脑)的方法步骤图文详解
  18. 双向长短期记忆网络模型_一种基于双向长短期记忆网络的定位修正方法与流程...
  19. HNUST OJ 2205 队伍能力值
  20. ubuntu下android开发安装手机驱动

热门文章

  1. Spring Boot 核心配置文件,yml 语法规范、 多环境配置、配置文件加载顺序
  2. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_16-CMS前端工程创建-导入系统管理前端工程...
  3. OpenCASCADE 开发框架(一)
  4. SPI(Service Provider Interface)机制
  5. 关于吐槽网播放映兔源视频无法播放的问题 及解决方案
  6. 【Python之路Day12】网络篇之Paramiko
  7. 关于一个类中方法的调用
  8. Python Class System
  9. WinHEC 2008 China
  10. sql plus命令大全(2)