`

Hibernate读书笔记-----Hibernate的关联映射之N-N关联映射 .

 
阅读更多

四、NN关联关系

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关联模型即可。双向N-N关联两端都需要使用set集合属性,两端都增加对集合属性的访问。双向N-N同样必须使用连接表来建立两个实体之间的关联关系。

以学生、老师为例:下面为两个实体的持久化类:

Student

Teacher

双向N-N关联的映射文件需要使用<set.../>元素,用以映射集合属性。<set.../>属性还需要增加<key.../>子元素来映射外键列,同时还应该增加<many-to-many.../>子元素来映射关联实体类。两个映射文件如下:

Student.hbm.xml


Teacher.hbm.xml


双向N-N关联的双边都需要指定连接表的表名,外键列的列名,所以两个<set.../>元素的table属性的值必须指定且一样。<set.../>元素的两个子元素:<key../><many-to-many.../>都必须指定column属性。<key.../><many-to-many.../>分别是指定本持久化类、关联类在连接表中的外键列。因此两边的<key.../><many-to-many.../>column属性的值应该是交叉相等。

通过下面的操作类来添加两个Student对象和两个Teacher对象


注意:这里只能由一边建立关联关系,就是说只能由Student对象建立与Teacher对象的关联或者由Teachert对象建立与Student对象的关联。否则将会出现主键重复错误

读李刚《轻量级JavaEE 企业应用实战》

分享到:
评论

相关推荐

    Hibernate映射笔记

    ### Hibernate映射笔记详解 #### Hibernate映射文件与配置关系 Hibernate映射是ORM(对象关系映射)框架中的一项关键技术,它允许开发者在数据库表和Java对象之间建立映射关系,从而简化了数据访问层的开发工作。...

    hibernate学习笔记-01helloword

    【标题】"hibernate学习笔记-01helloworld"主要涵盖了Hibernate框架的基础入门知识,是初学者了解和掌握Hibernate的重要起点。Hibernate是一款强大的Java对象关系映射(ORM)框架,它简化了数据库操作,使得开发者...

    javaEE框架笔记,识货人下

    54留言管理程序_Struts + Spring + Hibernate笔记.pdf 6-Struts标签-BEAN标签笔记.pdf 7-Struts标签 -LOGIC标签笔记.pdf 8-Struts标签- HTML标签笔记.pdf 9-Struts高级部分(1)(解决重复提交、上传组件)笔记.pdf

    Hibernate---我的Hibernate学习笔记.doc

    ### Hibernate—我的Hibernate学习笔记 #### 一、对象持久化的理论与实践 ##### 对象持久化概念 对象持久化指的是将内存中的对象状态保存至外部持久性存储设备(如硬盘),以便于日后需要时能够恢复其状态。这一...

    flex3读书笔记----flex整合hibernate

    12. **实体类与映射文件**: 实体类如SuperManager对应数据库中的表supermanager,属性与表字段一一对应,通过Hibernate的映射文件(.hbm.xml)建立这种关系,使得Java对象可以直接操作数据库。 13. **Hibernate ...

    hibernate笔记--云图智联

    Hibernate更多地关注对象和数据库表的映射,以及抽象出ORM操作,而Mybatis则更接近原生SQL,灵活性更高,通过映射文件可以精确控制SQL的执行。 以上知识点覆盖了Hibernate和Mybatis的配置、基本操作、查询、注解...

    韩顺平.2011版.hibernate笔记.zip

    《韩顺平.2011版.hibernate笔记》是一份针对Hibernate框架的详细学习资料,由知名IT讲师韩顺平在2011年编撰而成。Hibernate是Java开发领域中广泛使用的对象关系映射(ORM)框架,它极大地简化了数据库操作,使开发者...

    hibernate课程笔记.doc

    Hibernate 是一个开源的对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作。在JDBC(Java Database Connectivity)的基础上,Hibernate 提供了面向对象的编程模型,减少了与数据库交互时的繁琐代码,...

    JPA学习笔记-EJB-04JPA关联映射总结

    本篇笔记主要聚焦于JPA的关联映射,这是JPA中一个重要的概念,用于定义实体之间的关系。 关联映射允许我们将数据库中的表关系映射到Java对象的关联上。在Hibernate中,这些关系通常通过XML配置文件来定义,而在JPA...

    hibernate学习笔记.

    【hibernate学习笔记】 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它极大地简化了数据库操作。以下是对Hibernate的学习要点的详细解释: 1. **建立第一个Hibernate版本的HelloWorld** - **...

    Hibernate学习笔记特别详细

    007---Hibernate映射标签和属性 - `&lt;generator&gt;`元素:用于定义主键生成策略,如increment、sequence、identity等。 - `&lt;property&gt;`标签:用于映射类的普通属性,包含name、type、column等属性。 例如,一个简单的...

    马士兵hibernate学习笔记(原版)

    ### 马士兵Hibernate学习笔记知识点总结 #### 一、课程内容概览 - **HelloWorld**:通过简单的示例程序介绍如何启动一个基于Hibernate的Java项目。 - **Hibernate原理模拟**:解释O/R Mapping的概念及其重要性。 -...

    Hibernate入门笔记.pdf

    ### Hibernate入门知识点详解 ...通过以上步骤,我们成功地创建了一个简单的Hibernate应用程序,实现了Java对象到数据库记录的映射。这是学习Hibernate的第一步,后续可以进一步探索更高级的功能,如查询、事务管理等。

    Java相关课程系列笔记之十四Hibernate学习笔记.doc

    ### Java相关课程系列笔记之十四:Hibernate学习笔记 #### 一、Hibernate的概述 ##### 1.1 Hibernate框架的作用 Hibernate是一个开源的对象关系映射(Object Relational Mapping, ORM)框架,它允许开发者以面向...

    hibernate笔记.txt

    在深入探讨《hibernate笔记.txt》所提及的关键知识点前,我们先来解析一下标题和描述中的核心概念。“自上而下的依赖,单向依赖,层与层之间最好依赖抽象”,这一描述实际上触及了软件架构设计中的关键原则,特别是...

    Hibernate备课笔记.pdf

    本备课笔记将深入探讨Hibernate的核心概念、配置、实体映射、查询语言以及其他重要特性。 一、Hibernate核心概念 1. 对象关系映射(ORM):Hibernate通过ORM机制将Java对象与数据库表进行对应,使得程序员可以避免...

    Hibernate学习笔记整理

    Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...

Global site tag (gtag.js) - Google Analytics