版权声明:本文为博主原创文章,未经博主同意不得转载。
https://blog.csdn.net/qilixiang012/article/details/27956057
- 域模型:
- 关系数据模型
- 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
样例具体解释:
Item.java
package com.atguigu.hibernate.n2n;import java.util.HashSet;import java.util.Set;public class Item { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
Category.java
package com.atguigu.hibernate.n2n;import java.util.HashSet;import java.util.Set;public class Category { private Integer id; private String name; private Set- items = new HashSet<>(); public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Set
- getItems() { return items; } public void setItems(Set
- items) { this.items = items; } }
xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.atguigu.hibernate.n2n.Item" table="ITEMS"> <id name="id" type="java.lang.Integer"> <column name="ID" /> <generator class="native" /> </id> <property name="name" type="java.lang.String"> <column name="NAME" /> </property> </class> </hibernate-mapping>