前幾篇文章具體討論了物件模型到關係模型的轉化方法,對對映關係做了具體的了解,hibernate將物件模型轉化為對應的關係模型是通過使用對應的對映來完畢的(相同也能夠使用註解),對於物件之間的關係的轉化則是通過使用對應的標籤來實現的,物件模型的關係多樣性,決定了關係模型的多樣性,本文將會對關係對映做總結,使用關係導圖來記憶這些標籤的用法。
hibernate通過使用不同的標籤實現了物件模型向關係模型的轉化過程,可是hibernate提供了多種對映標籤,各種標籤通過繪制導圖,彙總例如以下圖:
從物件的角度出發能夠把對映分為兩種一種是關聯關係的對映,第二種是繼承關係的對映,當中的組合對映事實上是關聯關係的一種特殊情況。由於物件之間有多重性關係,所以物件的關係繼續劃分的話又會有多對多、一對多、多對
一、一對一的關係出現,在物件模型中稱為多重性,通過使用相應的標籤來實現相應的模型的轉化。另外這樣的多重性的關係是相互的所以又能夠更加仔細的劃分為單向性和多向性,單向的關聯關係僅僅須要在維護關係的一端加入相相應的標籤,雙向的對映則須要在物件的兩端同一時候加入相應的標籤,由於它是兩端同一時候維護關係的。最後另一種特殊的組合對映,在物件模型中常常出現,是最強的關聯關係,它的對映相對簡單。
從關係表的角度出發能夠把對映分為集合對映和復合主鍵對映,集合對映在開發中不常常使用,由於能夠通過多重性對映來替代集合對映,能夠多了解這樣的對映就可以。對於復合主鍵對映在設計資料庫時不提倡使用,設計資料庫時講求主鍵唯一,而且選擇列集合最少的候選鍵作為主鍵,可是一定要了解。
上文對對映做了具體的劃分,通過劃分來理清對映之間的關係,便於掌握使用,這裡具體來討論不同的對映所使用的標籤實現方法。
關聯對映經經常使用到,對關聯關係做劃分的話就會出現不同的對映關係,依照關係的多重性劃分了不同的對映集合,詳細對映的標籤例如以下:
多對多:
一對多:
多對一:
一對一:
note:通過使用多重性的對映標籤,能夠實現物件模型到關係模型的轉化。單向的關聯僅僅須要在維護關係的一端加入相應的標籤,雙向關聯須要在物件的兩端同一時候加入相應的標籤。
組合對映,通過使用該標籤將乙個物件加入到還有乙個物件中,生成對應的表結構也會將兩個物件合成為一張表,對映簡單易懂。
繼承對映,繼承對映也僅僅會生成一張表,在該表中加入對應的型別標籤來指明不同的物件的型別,所以須要加入鑑別器標籤,並在對映檔案裡須要加入子類的屬性標籤。
這裡分為兩種一種是集合對映,同一時候使用hibernate提供的集合標籤來實現對映關係的轉換,另外還須要注意集合的不同型別,依據型別來加入不同的子標籤。
set:;array:;
map:,鍵值成對,須要加入子標籤;
list:,物件資料是有序的,須要加入/;
全部的集合對映:標籤指明關係表的主鍵,指明關係表的屬性。
另外另一種復合主鍵對映,指明復合主鍵的關係,在物件模型中須要將主鍵物件單獨轉化為乙個類,而且該類要實現序列化介面,同一時候使用該標籤將該物件註冊到主物件中。
有關對映的具體用法,請檢視筆者的文章:【hibernate步步為營】:具體解釋基本對映
關聯對映之多對一
單向關聯一對一對映
雙向關聯一對一對映具體解釋(一)/(二)
(一對多對映)之單向關聯/雙向關聯
多對多對映具體解釋、繼承對映、
復合主鍵對映、組合對映、集合對映。
本文是對映的總結性文章,對關係模型和物件模型之間的轉化過程做了總結性的討論,目的是對對映進行分類減輕使用負擔,在開發中能夠非常快的理解該使用何種型別的對映,事實上相當的簡單,可是須要動手去實踐,通過實踐來加深對對映的理解,並達到靈活運用的目的。
Hibernate步步為營 鎖機制詳解
上篇文章詳細討論了hql的各種查詢方法,在討論過程中寫了 示例,hql的查詢方法類似於sql,查詢的方法比較簡單,有sql基礎的開發人員在使用hql時就會變得相當的簡單。hibernate在運算元據庫的同時也提供了對資料庫操作的限制方法,這種方法被稱為鎖機制,hibernate提供的鎖分為兩種一種是...
步步為營 79 快取
快取cache,一種空間換取時間的技術,適用於經常訪問,不常修改的資料.1 寫入快取 1.1 方法一 cache message ab 1.2 方法二 cache.insert message ab 1.3 其他過載 insert string key,object value,cachedepen...
步步為營 50 事務
說明 比較常用 1 事務的四大特性 1.1 原子性atomicity 乙個事務中包含的多個sql語句,要麼同時成功,要麼同時失敗.1.2 一致性consistency 事務必須使資料庫從從乙個一致性狀態變成另外乙個一致性狀態.銀行轉賬 1.3 隔離性 isolation 各個事務執行互不干擾 鎖 1...