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

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

編輯:關於JAVA

上次的博文中 Hibernate從入門到精通(四)基本映射我們已經講解了一下基本映射和相關概念,接下來 我們會講稍微復雜點的映射——關系映射。

關系映射分類

關系映射即在基本映射的基礎上處理 多個相關對象和多個相關表之間聯系的映射。關系映射從對應關系的角度可以分為如下七種類型:一對一單向關聯 一對一雙向關聯 一對多單向關聯 多對一單向關聯 一對多雙向關聯 多對多單向關聯

多對多雙向關聯

接下來博客,我們會分別講解一下這七種關系映射。今天我們只講其中的一對一單向關聯。

一對一 單向關聯

一對一單向關聯從對象的角度分析,即在一個對象(Person)中存在另一個對象(IdCard)的引 用,而在另一個對象(IdCard)中則不存在該對象(Person)的引用,這樣就可以在加載該對象(Person)的時候找 到另一個對象(IdCard)。類結構圖如下所示:

具體代碼如下所示:

public class Person {  
    private int id;           
    private String name;              
    private IdCard idCard;  
          
    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 IdCard getIdCard() {  
        return idCard;  
    }  
    public void setIdCard(IdCard idCard) {  
        this.idCard = idCard;  
    }  
}  
      
public class IdCard {             
    private int id;           
    private String cardNo;  
    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getCardNo() {  
        return cardNo;  
    }  
    public void setCardNo(String cardNo) {  
        this.cardNo = cardNo;  
    }  
}

上述類結構的相應根據關聯的策略不同會生成不同的表結構,可以分為主鍵關聯和唯一外鍵關聯。

主鍵關聯

主鍵關聯表結構如下:

可以看出,主鍵關聯即利用主 鍵進行關聯,關聯主鍵的值相同。其相應的*.hbm.xml配置文件代碼如下:

<class 

name="com.zs.hibernate.IdCard" table="t_idCard">  
    <id name="id">  
        <generator class="native"/>  
    </id>  
    <property name="cardNo"/>  
</class>  
      
<class name="com.zs.hibernate.Person" table="t_person">  
    <id name="id">                          
        <generator class="foreign">                             
            <param name="property">idCard</param>  
        </generator>  
    </id>  
    <property name="name"/>  
    <one-to-one name="idCard" constrained="true"/>  
</class>

唯一外鍵關聯

唯一外鍵關聯表結構如下:

與主鍵關聯所不 同,唯一外鍵關聯除主鍵外,在其一對一的指向端(Person)存在一個唯一外鍵,該唯一外鍵與被指向端 (IdCard)相關聯,關聯主鍵的值相同。其相應的*.hbm.xml配置文件代碼如下:

<class 

name="com.zs.hibernate.IdCard" table="t_idCard">  
    <id name="id">  
        <generator class="native"/>  
    </id>  
    <property name="cardNo"/>  
</class>  
      
<class name="com.zs.hibernate.Person" table="t_person">  
    <id name="id">  
        <generator class="native"/>  
    </id>  
    <property name="name"/>  
    <many-to-one name="idCard" unique="true"/>  
</class>

同之前的基本映射一樣,我們同樣可以利用注解對類帶進行相關配置,這裡我們就 不做過多的介紹了。還是之前說過的,要想了解注解和XML相關配置的具體內容,建議大家找一本相關書籍進 行詳細閱讀。

到此為止關於一對一單向關聯我們就已經講完了,下次我們繼續講解關系映射中的一對 一雙向關聯。

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