如果是<many-to-one>則其後面的name屬性爲“one”的一方
如果是<one-to-many>則其後面的name屬性爲“many”的一方
雙向 一對多關聯== 單向一對多+單向多對一;
1.單向多對一:
在實體類裏將多的一方(Blog類)的外鍵 userId換成Users類的user
在配置文件Blog.hbm.xml裏添加
<many-to-one name="user" //name屬性對應的是Blog類裏的user(即剛剛改過來的那個)
class="edu.myblog.ssh.entity.Users">
<column name="user_id" /> //user_id爲blog表裏的外鍵
</many-to-one>
2.單向一對多:
配置一對多關聯時,set節點要加一個inverse(反轉)屬性 一般設爲true即由對方(多方)管理雙方的關聯關係
在爲“一”的方(相對於“一對多”中的“多”來說)即Users類中實例化一個Set類型的對象blog 即:Set blogs=new HashSet();
在配置文件Users.hbm.xml裏添加
<set name="blogs"> //name屬性爲 Users類即“一”方中實例化的那個Set對象
<key column="user_id" /> //column屬性爲多的一方的外鍵
<one-to-many class="edu.myblog.ssh.entity.Blog"/>//注意class的路徑
</set>
3.多對多:
多對多關係中,多采用中間表來關聯兩個有多多關係的表的.如下Courses.hbm.xml文件:
<set name="stu" table="stu_course_tec"> <!--table 就是中間表,在數據庫中建立的聯繫表-->
<key column="cid" /> <!--key中的column是中間表中字段,應該也可以說是中間表中的外鍵,對應的是該映射文件中的主健-->
<many-to-many class="Student" column="sid" /> <!--column是中間表中字段-->
</set>
Student.hbm.xml文件:
<set name="course" table="stu_course_tec">
<key column="sid" />
<many-to-many class="entity.Courses" column="cid" />
</set>