程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Hibernate從入門到精通(八)一對多單向關聯映射

Hibernate從入門到精通(八)一對多單向關聯映射

編輯:關於JAVA

上次的博文Hibernate從入門到精通(七)多對一單向關聯映射我們主要講解了一下多對一單向關聯映射, 這次我們繼續講解一下一對多單向映射。

一對多單向關聯映射

在講解一對多單向關聯之前,按 照我們的慣例首先看一下其相應的類結構圖和代碼。具體如下:

public class Classes {        
    private int id;  
    private String name;          
    private Set students;  
    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public Set getStudents() {  
        return students;  
    }  
    public void setStudents(Set students) {  
        this.students = students;  
    }         
}  
      
public class Student {  
    private int id;       
    private String name;  
    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
}

對比一對多關聯映射和我們之前講的多對一關聯映射,可以發現兩種映射原理是一致的,都是在多 的一端加入一個外鍵,指向一的一端。它們的區別在於維護的關系不同,多對一維護的是多指向一的關系,有 了此關系,在加載多的時候可以將一加載上來,一對多維護的是一指向多的關系,有了此關系,在加載一的時 候可以將多加載上來。

為了更好說明上述的結論,我們再看一下 一對多關聯映射的表結構和相應的Hibernate映射配置。具體如下:

<class name="com.zs.hibernate.Classes" table="t_classes">  
    <id name="id">  
        <generator class="native"/>  
    </id>  
    <property name="name"/>  
    <set name="students">  
         <key column="classesid"/>  
        <one-to-many class="com.zs.hibernate.Student"/>  
    </set>  
</class>  
      
<class name="com.zs.hibernate.Student" table="t_student">  
    <id name="id">  
        <generator class="native"/>  
    </id>  
    <property name="name"/>  
</class>

通過上面表中數據和我們之前關於多對一(參考Hibernate從入門到精通(七)多對 一單向關聯映射)的對比,我們就可以清晰的看出,在一對多中,僅僅添加了一個<set/>標簽,將多對 一中的一改為多而已,如果將集合看成一個整體,則兩者實際上就沒有區別了。

一對多單向關聯映射 缺陷

到此為止,關於一對多單向關聯基本,但是細心的讀者可能發現了在一對多中的一的一端維護關 系是有缺陷的。例如:在保存Student的時候關系字段classesid為null,則將無法保存數據等等。這些問題如 何解決,這就需要引出我們下次講解的一對多雙向關聯映射了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved