Hibernate筆記三,表設計之多對多

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:當前表所引用的外鍵名
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章