表设计:
有一张中间表,中间表中有两张关联表的外键
如:student与teacher
Student:
package cn.framelife.mvc.entity;
import java.util.Set;
public class Student {
private Integer id;
private String name;
private Set<Teacher> teachers;
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<Teacher> getTeachers() {
return teachers;
}
public void setTeachers(Set<Teacher> teachers) {
this.teachers = teachers;
}
}
Teacher:
package cn.framelife.mvc.entity;
import java.util.Set;
public class Teacher {
private Integer id;
private String name;
private Set<Student> students;
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<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
}
Student.hbm.xml:
<hibernate-mapping>
<class name="cn.framelife.hibernate.entity.Student" table="student">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="s_name" length="45" not-null="true" />
</property>
<set name="teachers" table="s_t" cascade="all">
<key column="student_id"/>
<many-to-many column="teacher_id" class="cn.framelife.hibernate.entity.Teacher"></many-to-many>
</set>
</class>
</hibernate-mapping>
Teacher.hbm.xml:
<hibernate-mapping>
<class name="cn.framelife.hibernate.entity.Teacher" table="teacher" catalog="hibernate">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="t_name" length="45" not-null="true" />
</property>
<set name="students" table="s_t" >
<key column="teacher_id"/>
<many-to-many column="student_id" class="cn.framelife.hibernate.entity.Student"></many-to-many>
</set>
</class>
</hibernate-mapping>
增加:
Student s1 = new Student();
s1.setName("s10");
Student s2 = new Student();
s2.setName("s11");
Set<Teacher> set = new HashSet<Teacher>();
Teacher t1 = new Teacher();
t1.setName("t10");
Teacher t2 = new Teacher();
t2.setName("t11");
set.add(t1);
set.add(t2);
//设置学生与老师的的关系
s1.setTeachers(set);
s2.setTeachers(set);
//增加两个学生,同时会把老师也加到数据库中
session.save(s1);
session.save(s2);
分享到:
相关推荐
第 8 章 关联关系映射 第 9 章 组件(Component)映射 第 10 章 继承映射(Inheritance Mapping) 第 11 章 与对象共事 第 12 章 Read-only entities 第 13 章 事务和并发 第 14 章 拦截器与...
hibernate多对一关联映射(Hibernate_Many2One) 7 hibernate一对一主键关联映射(单向关联Person---->IdCard) 8 hibernate一对一主键关联映射(双向关联Person<---->IdCard) 9 hibernate一对一唯一外键关联映射...
12.4.9 多对多双向关联的annotation注解实现545 12.4.10 组成关系映射的annotation注解实现547 12.4.11 继承关系映射的annotation注解实现549 12.4.12 hibernate集合映射的annotation注解实现552 12.5 基于...
15.3 映射双向多对多关联关系 15.3.1 关联两端使用元素 15.3.2 在inverse端使用元素 15.3.3 使用组件类集合 15.3.4 把多对多关联分解为两个一对多关联 15.4 小结 15.5 思考题 第16章 Hibernate的检索...
15.3 映射双向多对多关联关系 15.3.1 关联两端使用元素 15.3.2 在inverse端使用元素 15.3.3 使用组件类集合 15.3.4 把多对多关联分解为两个一对多关联 15.4 小结 15.5 思考题 第16章 Hibernate的检索...
15.3 映射双向多对多关联关系 15.3.1 关联两端使用元素 15.3.2 在inverse端使用元素 15.3.3 使用组件类集合 15.3.4 把多对多关联分解为两个一对多关联 15.4 小结 15.5 思考题 第16章 Hibernate的检索...
15.3 映射双向多对多关联关系 15.3.1 关联两端使用元素 15.3.2 在inverse端使用元素 15.3.3 使用组件类集合 15.3.4 把多对多关联分解为两个一对多关联 15.4 小结 15.5 思考题 第16章 Hibernate的检索...
第9章 使用AttributesNHibernate.Mapping.Attributes 20 如何使用? 20 提示 21 已知的问题和TODOs 22 开发者须知 22 第10章 NHibernate.Tool.hbm2net 23 什么是 NHibernate.Tool.hbm2net? 23 第11章 Nullables 23 ...
第一章 SELECT查询 写一条SELECT查询语句 在查询中使用表达式、运算符 对空值的处理 ...第九章 对数据的操作 在已创建表中插入新的数据 修改已经存在的数据 删除表中的数据 理解事物控制及其重要性 等等......
第11章 Hibernate的关联映射 第12章 HQL查询语言 第13章 Hibernate的高级特性 第14章 Hibernate结合JSP使用 第四篇 iBatis篇 第15章 iBatis概述 第16章 iBatis的特性 第17章 JSP、Servlet和iBatis结合...
第7章 高级实体关联映射 7.1 单值的实体关联 7.1.1 共享的主键关联 7.1.2 一对一的外键关联 7.1.3 用联结表映射 7.2 多值的实体关联 7.2.1 一对多关联 7.2.2 多对多关联 7.2.3 把...
1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 ...
第一部分 客观选择题 2 第1章 绪论 2 第2章 关系数据库 3 第3章 关系数据库标准语言SQL 5 第5章 关系数据理论 7 第6章 数据库设计 9 第7章 数据库恢复技术 11 第8章 并发控制 12 第9章 数据库安全性 13 第10章 ...
第9章 Hibernate XDoclet模板配置 9.1 IDEA 9.2 Eclipse 第10章 Hibernate益友——iBatis 10.1 Ibatis 概述 10.2 快速起步 10.3 IBatis 基础 10.4 iBatis高级特性 10.5 IBatis周边 第11章 工具卡片和软件 ...
第9部分 实体数据建模基础之继承关系映射TPH 第10部分 实体数据建模基础之两实体间Is-a和Has-a关系建模、嵌入值映射 第11部分 查询之异步查询 第12部分 查询之使用SQL语句 第13部分 查询之使用Entity SQL 第14部分 ...
第9章 Hibernate XDoclet模板配置 9.1 IDEA 9.2 Eclipse 第10章 Hibernate益友——iBatis 10.1 Ibatis 概述 10.2 快速起步 10.3 IBatis 基础 10.4 iBatis高级特性 10.5 IBatis周边 第11章 工具卡片和软件 ...
一、NHibernate概括 二、NHibernate环境与结构体系 三、第一个NHibernate应用程序 四、持久对象的生命周期(上) 五、持久对象的生命周期(下) 六、基本映射 七、多对一关联映射 ...十、多对多关联映射
C Mapping),从而无需改变应用程序 物理数据独立性 当内部模式变化时,可以不改变概念模式(只需改变C-I Mapping) ,从而不改变外部模式 数据库原理与运用第二章-数据库系统结构全文共36页,当前为第9页。 数据库原理...