hibernate物件關係

2021-06-12 08:29:04 字數 1618 閱讀 7675

hibernate學習第二天總結

一對一的關係有 共享主鍵見表方式  唯一外來鍵見表方式

共享主鍵建表方式 即一張表的主鍵,做了主鍵又做了外來鍵

//person類裡面有乙個passport類的關聯屬性,名字叫做passport,根據傳遞性持久化,要儲存person物件的時候,同時要儲存

passport物件,所以關聯屬性passport裡面的 passport物件存放到 passport類所對應的表裡面 ,即是t_passport表

對於 one-to-one標籤預設的外來鍵是 t_passport的主鍵,級聯為all,意思就是當t_person表新增刪除修改,查詢的時候都帶上

t_passport的內容

//passport類對應資料庫裡面的t_passport資料表

//t_passport表的主鍵生成器

//這個主鍵生成器,我理解為是外來鍵

person

//這個外來鍵來自**呢,來自乙個屬性,屬性的名字是自己的關聯屬性person所對應的那個物件的主鍵

//在passport類裡面有乙個person關聯屬性,根據傳遞性可持久化,在查詢passport所對應的表的時候要把person物件所對應的表

也要查詢出來,所以儲存這個person物件 到person類所對應的表裡面,級聯為all,外來鍵為t_person的主鍵 constrained="true"

意思是申明這t_passport是子表

下面是唯一外來鍵,我也舉個列子

舉得列子是每個公司都有相應的位址

//company類裡面有乙個關係屬性名字叫a型別是address,當儲存更新查詢的時候,這個關係屬性,就會去參考address的c屬性

因為現在不是去參考另一張表的主鍵了,而去參考另一張表的 私自的字段,在t_address表裡面有乙個c_id列,

比如舉個列子當查詢的時候,查詢條件是查詢公司id為1 的位址,那麼因為有onetoone標籤,所以他有乙個引用,這個應用的名字叫做a,引用的型別是address,當讀到property-ref="c" 這句話的時候他就去讀取address類裡面的c屬性,又因為c屬性是個company物件的引用,這個company物件裡面有主鍵id的資訊,所以在t_address表裡面有用,根據這個主鍵資訊,把相關 的記錄查出來,查出來又是乙個address物件,所以資訊是這麼查出來的

// 這邊為什麼用many to one 標籤呢,因為這個一對一的關係,這個字表有乙個列是外來鍵列,外來鍵列,本來是可以重複的,這麼就是

乙個公司可以有多個位址。所以在原意上就是用many to one 不過我們可以加上unique屬性等於true,就可以保證這個外來鍵列是不重負的,這個關係屬性名字叫做c,對應的表示company所對應的表,在資料庫裡面所對應的字段是c_id,這個就是在資料庫中的這個外來鍵列的名字,級聯樣式為,儲存和更新,

下面是乙個一對多的樣例

舉得例子就是乙個部門下游多個員工

這是乙個單向關係,就是部門能找到員工,而員工不能找到部門

//普通屬性

//因為在dept類裡面有乙個set的emplyee物件的集合,用來表示乙個部門有多個員工,name=employees意思是這個屬性的名字叫

employees,級聯為儲存,修改,查詢,column=d_id意思是對應employee類所對應的表的d_id外來鍵

hibernate物件關係對映

一對一主鍵關聯對映 單向person idcard 原理 讓兩個實體的主鍵一樣,這樣就不需要加入多餘的字段了。舉例 乙個人 person 擁有一張身份證 idcard 一對一主鍵關聯對映 雙向person idcard 原理 與上面單項相同,只是需要兩端都需要維護。舉例 同上。person的對映檔案...

Hibernate 物件關係對映

1 例如使用者和組的關係就是多對一關係,多個使用者對應乙個組。2 將實體對映成表。多對一關聯對映在多的一端來維護關聯字段,在使用者一端來維護關係字段 user.hbm.xml檔案 group.hbm.xml檔案 3 在這裡我們看的 就看 hbm.mlx 因為對於類之間的關聯,在實現時,乙個類作為另乙...

Hibernate物件對映關係

單錶繼承對映 每棵類繼承樹使用乙個表。對映檔案extends.hbm.xml。html 因為類繼承樹肯定是對應多個類,要把多個類的資訊存放在一張表中,必須有某種機制來區分哪些記錄是屬於哪個類的。這種機制就是,在表中新增乙個字段,用這個欄位的值來進行區分。用hibernate實現這種策略的時候,有如下...