Hibernate(九)映射多对多关联关系

作者 : 开心源码 本文共772个字,预计阅读时间需要2分钟 发布时间: 2022-05-11 共63人阅读

一、单向 n-n

n-n 的关联必需用连接表

与 1-n 映射相似,必需为 set 集合元素增加 key 子元素,指定 CATEGORIES_ITEMS 表中参照 CATEGORIES 表的外键为 CATEGORIY_ID. 与 1-n 关联映射不同的是,建立 n-n 关联时, 集合中的元素用 many-to-many。many-to-many 子元素的 class 属性指定 items 集合中存放的是 Item 对象, column 属性指定? CATEGORIES_ITEMS 表中参照 ITEMS 表的外键为 ITEM_ID。

(1)创立实体

(2)映射文件

(4)指定关联文件

(5)执行操作,生成表

(6)表的结构如下

(7)执行保存数据操作

(8)数据

(9)查询操作,内连接

二、双向n-n关联

双向 n-n 关联需要两端都用集合属性

双向n-n关联必需用连接表

集合属性应添加 key 子元素使用以映射外键列, 集合元素里还应添加many-to-many子元素关联实体类

在双向 n-n 关联的两边都需指定连接表的表名及外键列的列名. 两个集合元素 set 的 table 元素的值必需指定,而且必需相同。set元素的两个子元素:key 和 many-to-many 都必需指定 column 属性,其中,key 和 many-to-many 分别指定本持久化类和关联类在连接表中的外键列名,因而两边的 key 与 many-to-many 的column属性交叉相同。也就是说,一边的set元素的key的 cloumn值为a,many-to-many 的 column 为b;则另一边的 set 元素的 key 的 column 值 b,many-to-many的 column 值为 a.?

对于双向 n-n 关联, 必需把其中一端的 inverse 设置为 true, 否则两端都维护关联关系可可以会造成主键冲突.

(1)实体表Item添加了category集合

(2)映射文件添加了set节点

(3)执行保存操作

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Hibernate(九)映射多对多关联关系

发表回复