Hibernate9-Hibernate一對(duì)一外鍵&一對(duì)一主鍵雙向關(guān)聯(lián)

一對(duì)一外鍵雙向關(guān)聯(lián)

注:一對(duì)一外鍵雙向關(guān)聯(lián)是一對(duì)多外鍵關(guān)聯(lián)的特例,只是在多的一方加了一個(gè)唯一性約束。
USERS1表->用戶表
????USERID number(6) <pk>
????USERNAME nvarchar2(20)
????USERPASS nvarchar2(20)
RESUME1表->檔案表
????RESID number(6) <pk>
????RESUSERID number(6) <fk>
????RESNAME nvarcahr2(20)
????RESCARDNO nvarcahr2(20)

以上RESUME1表的RESUSERID外鍵設(shè)為了unique約束,確保每條RESUME1記錄具有唯一的RESUSERID。

因?yàn)樵趶谋?檔案表)添加了唯一約束,所以我們可以看出一個(gè)用戶對(duì)應(yīng)一個(gè)檔案,一個(gè)檔案對(duì)應(yīng)一個(gè)用戶。
對(duì)應(yīng)持久化類
Users1
????userid : Integer
????username : String
????userpwass : String
????resume1 : Resume1

Resume1
????resid : Integer
????users1 : Users1
????resname : String
????rescardno : String

映射配置文件 Users1.hbm.xml配置  
<one-to-one name="resume1" class="包.Resume1"/> 
Resume1.hbm.xml配置  
<many-to-one name="users1"class="包.Users1"column="RESUSERID"unique="true"/>  ```
這句代碼的意思是用column屬性的值,到class類中去找,找到后保存到name值的屬性中。Unique屬性一般設(shè)置在從表。注:配置好了這兩個(gè)文件之后,[hibernate](http://lib.csdn.net/base/javaee)會(huì)根據(jù)這兩個(gè)文件來找到相對(duì)應(yīng)的數(shù)據(jù)。

## 一對(duì)一主鍵雙向關(guān)聯(lián)
USERS1表->用戶表
&nbsp;&nbsp;&nbsp;&nbsp;USERID number(6) <pk,fk>
&nbsp;&nbsp;&nbsp;&nbsp;USERNAME nvarchar2(20)
&nbsp;&nbsp;&nbsp;&nbsp;USERPASS nvarchar2(20)
RESUME1表->檔案表
&nbsp;&nbsp;&nbsp;&nbsp;RESID number(6)    <pk>
&nbsp;&nbsp;&nbsp;&nbsp;RESNAME nvarcahr2(20)
&nbsp;&nbsp;&nbsp;&nbsp;RESCARDNO nvarcahr2(20)

對(duì)應(yīng)持久化類
 Users1
&nbsp;&nbsp;&nbsp;&nbsp;userid : Integer
&nbsp;&nbsp;&nbsp;&nbsp;username : String
&nbsp;&nbsp;&nbsp;&nbsp;userpwass : String
&nbsp;&nbsp;&nbsp;&nbsp;resume1 : Resume1

 Resume1
&nbsp;&nbsp;&nbsp;&nbsp;resid : Integer
&nbsp;&nbsp;&nbsp;&nbsp;users1 : Users1
&nbsp;&nbsp;&nbsp;&nbsp;resname : String
&nbsp;&nbsp;&nbsp;&nbsp;rescardno : String

映射配置文件

Users1.hbm.xml配置
<one-to-one name=”Resume1” class=”包.Resume1”constrained=”true”/>
constrained屬性表明,將Users1類的主鍵看成外鍵,本屬性一般設(shè)置在從表。
Resume1.hbm.xml配置
<one-to-one name=” users1” class=”包.Users1”/>

注:配置好了這兩個(gè)文件之后,Hibernate會(huì)根據(jù)這兩個(gè)文件來找到相對(duì)應(yīng)的數(shù)據(jù)。


![](http://upload-images.jianshu.io/upload_images/3938475-36a8bb972c889086.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 上篇文章我們對(duì)持久化對(duì)象進(jìn)行的學(xué)習(xí),了解了它的三種不同的狀態(tài)并通過它完成對(duì)數(shù)據(jù)庫的映射操作。但這都是基于單張表的操...
    Single_YAM閱讀 588評(píng)論 0 1
  • 兩個(gè)對(duì)象之間是一對(duì)一的關(guān)系,如Person<-->IdCard 有兩種策略可以實(shí)現(xiàn)一對(duì)一的關(guān)聯(lián)映射主鍵關(guān)聯(lián):即讓兩...
    yjaal閱讀 496評(píng)論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,659評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,753評(píng)論 18 399
  • 1 夜晚涼風(fēng)習(xí)習(xí),立秋之后的天氣,白天雖然依舊炎熱,傍晚已變得怡人可愛起來。天將黑未黑,天空一點(diǎn)點(diǎn)變灰,然后染上藍(lán)...
    維聽聽閱讀 398評(píng)論 0 0

友情鏈接更多精彩內(nèi)容