Hibernate关联映射多对多关联

在关系数据库中还有一种常见的关系,即多对多关联,下面以地址和人之间的关系来说明多对多关联,一个人可以去很对地方,同时,一个地址可以有多个人同时存在,因此,地址和人的关系可以看成是多对多的关系,地址(address)的结构表如图所示:

人(person)的结构表如图所示:

建立他们的多对多关联必须建立中间表(person_address),建立视图可以看到他们的多对多关系图如图所示:

在Hibernate中配置address和person表的多对多关联

1.新建一个项目工程

2.为工程添加Hibernate:鼠标右击项目文件——> My Eelipse——>Add Hibernate Annotations ...

3.点击widow——> open Perspective——>MyEclipse Java Persistence

4.在DB Browser 空白处右击新建一个Datebase Driver

5打开新建的Datebase Driver  找到address 和person表同时选中右击——>Hibernate Reverse Engineering点击下一步如图所示:

点击下一步如图所示:

点击完成如图所示:

Hibernate配置address表和person表文件如下:

Address.hbm.xml文件:

person.hbm.xml文件:

然后在index.jsp中插入数据如图所示:

打开person_address表,可以看到其中已经添加的记录,如图所示:

时间: 2024-11-09 02:49:15

Hibernate关联映射多对多关联的相关文章

Hibernate ManyToOne Mappings 多对一关联映射

Hibernate框架的使用步骤: 1.创建Hibernate的配置文件(hibernate.cfg.xml) 2.创建持久化类,即其实例需要保存到数据库中的类(Employee.java) 3.创建对象-关系映射文件(Employee.hbm.xml) 4.通过Hibernate API编写访问数据库的代码 例子:多个员工对应一个地址. 一.创建hibernate.cfg.xml 配置文件: 注意数据库名.用户名.密码是否填写正确. <?xml version="1.0" en

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

     映射原理 在数据库学习阶段,我们知道,如果实体和实体之间的关系是多对多,那么我们就抽出来第三张表,第一张表和第二张表的主键作为第三表的联合主键,结合我们的hibernate,多对多关联,无论是单向关联还是双向关联都是通过第三张表,将两个表中的主键放到第三张表中做一个关联,用第三张表来解决可能造成的数据冗余问题.今天这篇博文小编来简单的介绍一下hibernate中的多对多关联映射. 在某些系统中,一个用户可以有多个角色,一个角色也可以有多个用户,so,她们之间的关系就是多对多,多对多关联

【SSH进阶之路】Hibernate映射——多对多关联映射(八)

上篇博文[SSH进阶之路]Hibernate映射--一对多关联映射(七),我们介绍了一对多关联映射,它是多对多关联映射的基础. 多对多映射是现实生活中最常见的映射,也是最容易理解的映射.废话少说,直接开始. 映射原理 不论是单向关联还是双向关联都是通过第三张表,将两个表中的主键放到第三张做一个关联.用第三张表来解决可能会造成数据冗余的问题. 举例 一个用户(User)对多个角色(Role),一个角色对多个用户. 分类 单向的多对多关联映射(单向User--->Role) 对象模型 关系模型 实例

Hibernate的关联映射之N-N关联映射 .

四.N-N关联关系 1.1单向N-N的关联 单向的N-N关联和1-N关联的持久化类完全一样,控制关系的一端需要增加一个set集合属性,被关联的持久化实例以集合的形式存在. N-N关联必须使用连接表,N-N关联与有连接表的1-N关联非常相似,只需要去掉<many-to-many.../>元素的unique="true"即可.其他的配置和1-N关联一样. 由于与1-N关联非常相似,这里就不演示了. 1.2双向N-N的关联 对于双向的N-N关联,我们只需要转换为两个1-N关联模型

顺藤摸瓜【Nhibernate 关联映射--多对一】

现有两个实体,Dog 和 Master ,映射到数据库表中如上图所示.一个Dog只允许对应一个Master,但一个Master可以有多个Dog.我们在查询Dog的时候,往往还需要知道其主人Master的信息,也就是说,如果已知一个Dog的信息,想一次来顺藤摸瓜找到Master的信息,此时用Nhibernate如何去实现呐?这里就用到了多对一的关联映射方法.看我是如何实现的: Nhibernate的整个搭建过程就不在赘述了,前面的两篇文章都已经详细展示了一下,下面仅仅展示多对一的实现方法. 首先构

Hibernate的关联映射之1-1关联映射

二.1-1 无论是单向1-1映射关联,还是双休1-1映射关联,都有三种映射策略:基于主键.基于外键.采用连接表. 1.单向1-1映射关联 1.1.基于主键的单向1-1映射关联 对于基于主键的单向1-1关联,基于主键关联的持久化类不能拥有自己的主键生成器策略,它的主键由关联实体来负责生成. 是根据他自己的person属性来获得的.即他通过自身的一个getPerson()方法来获得Person对象.然后通过Person对象中的getID()方法获得id,然后赋值给自身id.这样就可以不需要自己来生成

Hibernate的关联映射之1-N关联映射

三.1-N 对于1-N而言,它的持久化类发生了一点改变,持久化类里需要使用集合属性.因为1的一端需要访问N的一端,而N的一端将以集合(Set)形式表现. 1.单向1-N关联 对于单向的1-N关联关系,只需要在1的一端增加Set类型的属性,该属性记录当前实体的关联实体. 同样以员工-部门为例(Employee-->Department).两个持久化类如下: Department [java] view plain copy print? public class Department { priv

Hibernate之实现多对多关联映射关系

直接以老师与学生的关系为例.在多对多关联关系中,其中一方都可通过Set保留另一方的所有信息,这样的关联是双向关联.在多对多关联关系中,也只能是双向关联.老师和学生分别对应一张表,通过一张有双方id的中间表来维护多对多的关联. 实体类 package test.hibernate.hbmManyToMany; import java.util.HashSet; import java.util.Set; public class Teacher { private Integer id; priv

Hibernate框架单向多对一关联映射关系

建立多对一的单向关联关系    Emp.java            private Integer empNo //员工编号            private String empName //员工姓名            //private Integer deptNo;  //部门编号            private Dept dept;    //所属部门    Dept.java            private Byte deptNo;