Hibernate笔记三,表设计之多对多

来源:互联网 发布:知之深爱之切全文pdf 编辑:程序博客网 时间:2024/05/21 16:22

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:当前表所引用的外键名
0 0