Hibernate笔记三,表设计之多对多
例子:学生表和课程表(多对多关系)
学生类
public class Student {
private Integer id;
private String name;
private Set<Course> courses = new HashSet<>();
//Get 和 Set 略
}
课程表
public class Course {
private Integer id;
private String name;
private Set<Student> students = new HashSet<>();
//Get 和 Set 略
}
一个学生肯定会有多门课程,一门课程也肯定有许多学生,在类中采用Set来保存对方对象,在对应的ORM映射文件中,表达多对多用set 节点表示,两个映射文件中的set 节点类似。
<set name="courses" table="t_student_course" inverse="false" cascade="save-update">
<key column="sid"></key>
<many-to-many class="Course" column="cid"></many-to-many>
</set>
table 属性:多对多中表达关系的第三张表名(在第三张表中储存双方表的主键)
key: 表示子表中的外键
column 表示外键名
many-to-many :多对多关系
class : 另外 ”多“ 的一方的完整类名
column:当前表所引用的外键名
本文是Hibernate笔记的第三部分,聚焦于多对多关系的表设计。通过学生表和课程表的例子,展示了如何在类中使用Set保存对方对象,并在ORM映射文件中配置多对多关系。在映射文件中,使用set节点和table属性定义第三张关联表,key和many-to-many元素用于表示子表中外键和多对多关系。
6808

被折叠的 条评论
为什么被折叠?



