hibernate 實體關聯關係對映
花了三天的業餘時間,終於寫完了hibernate關聯關係對映的所有例項,感覺還應該總結一下。
hibernate對映關係錯綜複雜,在實際中真的都能用到嗎?不用行嗎?
在我看來,hibernate提供這些對映關係,常用就是一對一和多對一,並且在能不用連線表的時候盡量不要用連線表。多對多會用到,如果用到了,應該首先考慮底層資料庫設計是否合理。
在實際開發中,在hibernate關聯關係之外常常還有另外一種選擇方案,表各自作為單錶對映,業務邏輯控制外來鍵關係(有時候就是乙個相關聯的列,但不一定要加外來鍵約束),這樣更加靈活,並且資料的完整性同樣***。
當然,「單錶對映,業務控制外來鍵關係」並不是說hibernate的實體關聯功能是多餘的,hibernate的實體關聯的優點很多,隨便拿本書都是講優點,用好了會讓開發人員感覺更方便,現在我也是兩種方案結合使用。比如對於不很確定的兩個實體,常常選用單錶關聯。
以前在初學hibernate還沒有完全搞清楚這些關聯關係的時候,就是用單錶對映,業務控制外來鍵關係做的,發現沒有任何問題,程式同樣執行得很好。
以上都是我自己的觀點。歡迎在此交流討論。
hibernate在實際專案開發中,hbm.xml包括資料庫指令碼都是通過xdoclet生成的,在此不採用xdoclet的目的是為了便於理解這些對映模型。實體-資料表-對映檔案 三者對比看,太直觀了。
瞌睡了,暫時先寫到此,有新思路了再補上。。。。
hibernate關聯關係對映目錄 │
├─單向關聯
├─
一對一外來鍵單向關聯
├─
一對一主鍵單向關聯
├─
一對一連線表單向關聯
├─
一對多外來鍵單向關聯
├─
一對多連線表單向關聯
├─
多對一外來鍵單向關聯
├─
多對一連線表單向關聯
└─
多對多單向關聯
├─雙向關聯
├─
一對一外來鍵雙向關聯
├─
一對一主鍵雙向關聯
├─
一對一連線表雙向關聯
├─
一對多外來鍵雙向關聯
├─
一對多連線表雙向關聯
└─
多對多雙向關聯
Hibernate實體關聯對映關係
hibernate關聯關係對映,包括單向關聯和雙向關聯,而 單向關聯又有 一對一外來鍵單向關聯 一對一主鍵單向關聯 一對一連線表單向關聯 一對多外來鍵單向關聯 一對多連線表單向關聯 多對一外來鍵單向關聯 多對一連線表單向關聯 多對多單向關聯 雙向關聯有 一對一外來鍵雙向關聯 一對一主鍵雙向關聯 一對...
對映實體關聯關係
乙個類中有兩個一對一關聯。class a class ba表 idname home id 指向b表中的id,外來鍵 company id 指向b表中的id,外來鍵 b表address street ida對映檔案 cascsde all b對映檔案 只有乙個一對一關聯。class a class ...
JPA實體關聯 hibernate實現
一對一關係對映分為單向一對一和多向一對一。在配置關係時必須確立控制方和被控制方。單向和雙向的區別為看主控方和被控方兩邊是否都配置了 onetoone,如果都有為雙向一對一,反之為單向。雙向一對一關聯有兩條規則 person屬於關係維護方 entity table name t one person ...