Hibernate 一對一主鍵單向、雙向關聯

Hibernate一對一單向主鍵關聯

舉例:人Person和身份證IdCard 11 身份證爲主表

類模型

Person() ---------> IdCard(主)

id:int                            id:int

name:String                cardNo:String

idCard:IdCard

表關係

Person                           IdCard

id | name                     id | cardNo

1    aaa  -------------> 1 8888888

  bbb  -----------à2 9999999

Person表的id既做Person的主鍵,又作爲外鍵參考IdCard表主鍵

 

1.建立對象模型

IdCard.java

Person.java

2.編寫配置文件

Person.hbm.xml

<!—這裏的主鍵生成策略爲外鍵策略,參考了對應類IdCard的主鍵--à

<!— <param name="property">idCard</param>idCard說明了Person類的主鍵是由哪個類對象對應的表中的主鍵給出的à

<generator class="foreign">

<param name="property">idCard</param>

</generator>

</id>

<property name="name"/>

<!--one-to-one`標籤說明了hibernate怎麼加載它關聯的對象,默認根據主鍵加載-->

<!—constrained屬性爲true表明Person表的主鍵作爲外鍵參照了IdCard-->

<one-to-one name="idCard" constrained="true"/>

 

IdCard.hbm.xml

 

測試結果:

在Person.hbm.xml中沒有設置cascade="all" 但可以級聯保存和查詢,加上cascade="delete" 纔可以級聯刪除

 

一對一雙向關聯

測試結果:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章