Hibernate(六)一對一雙向關聯對映

2022-07-03 21:18:07 字數 1385 閱讀 4981

在上次的博文hibernate從入門到精通(五)一對一單向關聯對映中我們講解了一下一對一單向關聯對映, 這次我們繼續講解一下與之對應的一對一雙向關聯對映。

一對一雙向關聯

與一對一單向關聯映 射所不同的的是在一對一雙向關聯中,不但在乙個物件(person)中存在另乙個物件(idcard)的引用,而在另一 個物件(idcard)中也存在對該物件(person)的引用,這樣即可以在載入該物件(person)的時候找到另乙個物件 (idcard),也可以在載入另乙個物件(idcard)的時候找到該物件(person)。

類結構圖如下所 示:

具體**如下所 示:

public class person   

public void setid(int id)

public string getname()

public void setname(string name)

public idcard getidcard()

public void setidcard(idcard idcard)

}

public class idcard

public void setid(int id)

public string getcardno()

public void setcardno(string cardno)

public person getperson()

public void setperson(person person)

}

與一對一單向關聯對映相同,一對一雙向關聯對映同樣關聯的策略不同會生成不同的表結構,也可 以分為主鍵關聯和唯一外來鍵關聯。但與一對一單向關聯對映相同的是生成的表結構,即一對一雙向關聯對映與 一對一單向關聯相比,只是改變了一對一關聯對映的載入,並沒有改變儲存。

主鍵關聯

主鍵關 聯表結構如下:

同一對一單向關聯對映類似, 主鍵關聯即利用主鍵進行關聯,關聯主鍵的值相同。其相應的*.hbm.xml配置檔案**如 下:

idcard

唯一外來鍵關聯

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

一對一雙向關聯 對映的外來鍵關聯對映也與一對一單向關聯對映的外來鍵關聯對映類似,在其一對一的指向端(person)存在乙個唯 一外來鍵,該唯一外來鍵與被指向端(idcard)相關聯,關聯主鍵的值相同。其相應的*.hbm.xml配置檔案**如 下:

同樣利用在類檔案中註解的方式也可以取代xml配置對映。

到此為止,單向和雙 向的一對一關聯我們就講解完畢了。講的不夠細,僅僅給大家講解了一下例項和幾點區別,但對於掌握和應用 hibernate這些就可以了。下次我們繼續講解hibernate對映的其他幾種。

hibernate 一對一雙向關聯 外來鍵

這種情況是多對一的特例,即外來鍵不准重複。1.單向一對一 person類 package com.bjpowernode.hibernate.domain public class person public void setname string name public int getid pub...

NH一對一 雙向主鍵關聯對映

nh 一對一 雙向主鍵關聯對映 概述 nhibernate 表之間的幾種關係不易把握,現根據個人學習,進行總結.nh一對一有三種設定方式,分別為 單向主鍵關聯對映 雙向主鍵關聯對映 唯一外來鍵關聯對映 本文以雙向主鍵關聯對映作為學習 a.實體 public class parent public v...

hibernate學習(7) 一對一雙向外來鍵關聯

無論是單向還是雙向,在資料庫裡的形式都是一樣的 用乙個外來鍵來建立兩張表的聯絡。不同的是在程式中雙向可以從任意一段得到另一端的引用。annotation方式 同樣兩端都使用 onetoone,但需要注意在一端加上mapedby引數。引數的值是另一端對應的屬性名稱。如果不加mapedby,hibern...