上篇介紹了hibernate一對一對映通過主鍵關聯,這篇介紹一對一對映通過唯一外來鍵關聯,還是用person和idcard例項說明。
唯一外來鍵關聯其實是多對一的的特例,採用標籤來對映,指定多的一端unique為true,這樣就限制了多的一端的多重性為一,就是這樣來對映的。
單向:
person端:
package com.bjpowernode.hibernate;
public class person
public void setid(int id)
public string getname()
public void setname(string name)
public idcard getidcard()
public void setidcard(idcard idcard)
}
person.hbm.xml
<?xml version="1.0"?>
idcard端:
package com.bjpowernode.hibernate;idcard.hbm.xmlpublic class idcard
public void setid(int id)
public string getcardno()
public void setcardno(string cardno)
}
<?xml version="1.0"?>
對映出的表結構如下:
雙向:
person端一樣,看idcard端:
package com.bjpowernode.hibernate;idcard.hbm.xmlpublic class idcard
public void setid(int id)
public string getcardno()
public void setcardno(string cardno)
public person getperson()
public void setperson(person person)
}
<?xml version="1.0"?>總結:用了兩篇部落格寫了hibernate一對一對映,一種實現策略是關聯主鍵,另一種是唯一外來鍵關聯。這兩種策略比較推薦使用第二種。關聯主鍵不須在表中另外新增字段,通過主鍵相同來維護關係,採用的主鍵生成策略是「foreign」。侷限在想要建立一對一對映的兩張表必須主鍵一樣。而相對於這個情況,第二種策略就好多了,它會另外新增乙個字段,來維護這個關係。
hibernate對映(三) 一對一
說起一對一關聯對映它有兩種方式來實現。下面分別說一下它的兩種不同的對映方式。從圖中,可以猜到這種一對一對映是通過兩張表擁有相同的主鍵來進行關聯的。只有在載入的時候,二條資料的主鍵相同就關聯載入。在這裡,我們通過people來載入idcard,進行一一對應。在設計實體類時,由於是根據people來載入...
hibernate一對一關聯對映
一對一主鍵關聯對映 單向關聯person idcard 讓兩個實體物件的id保持相同,這樣可以避免多餘的字段被建立 具體對映 idcard 一對一主鍵關聯對映 雙向關聯person idcard 需要在idcard對映檔案中加入標籤指向person,指示hibernate如何載入person 預設根...
Hibernate 一對一關聯對映
hibernate 關聯對映包括 一對一關聯對映 一對多和多對一關聯對映 多對多關聯對映 本篇先說一對一關聯對映 原理 一對一關聯對映原理 讓兩個實體的主鍵一樣,這樣就不需要加入多餘的字段 例項 人與身份證號的關係,乙個人只有乙個身份證號,乙個身份證號對應乙個人 以單向關聯 person idcar...