hibernate对象关系实现(三)多对多实现

时间:2023-02-05 02:51:44

单向n-n:(catogory-item)一个类别对应多个条目,一个条目对应多个类别

a.以类别类中有条目的集合的引用为例:

hibernate对象关系实现(三)多对多实现hibernate对象关系实现(三)多对多实现

b.数据库中的体现:建立一个新表,以类别和条目的主键关联的外键做新表的联合主键。

hibernate对象关系实现(三)多对多实现

c.映射配置:在类别表中配置外键映射关系

hibernate对象关系实现(三)多对多实现

hibernate对象关系实现(三)多对多实现

d测试:

保存

hibernate对象关系实现(三)多对多实现hibernate对象关系实现(三)多对多实现

将执行四条插入语句将种类和条目插入后再执行四条插入语句将关联关系插入category_item目表;

获取:

hibernate对象关系实现(三)多对多实现

获取类别关联对象集合是延迟加载的;

获取条目集合数据时候,采用内连接的方式,即关系表和条目表的内连接,

二。对于双向的多对多,在单向的基础上添加

a.表中条目类添加类别的集合引用:

hibernate对象关系实现(三)多对多实现

c.条目映射表添加映射关系:

hibernate对象关系实现(三)多对多实现

特别注意 :双向多对多,一方<set>元素中需要设置inverse=true;只由一方来维护关联关系,否则出现主键冲突(因为会出现重复插入记录),

上面配置没有添加了,需添加上;

hibernate对象关系实现(三)多对多实现