hibernate的配置文件工作原理和兩種設計:一對多、多對多

“一對多”是最普遍的映射關系,簡單來講就如消費者與訂單的關系。一對多:從消費者角的度來說一個消費者可以有多個訂單,即為一對多。多對一:從訂單的角度來說多個訂單可以對應一個消費者,即為多對一。個人簡單的一點小結 。

一對多

實體類

一:?private?Set<linkman>?linkMans;?//?表達一對多關系 多:?private?Customer?customer?;?//表達多對一關系</linkman>

配置文件

一:

????<!-- 集合,一對多關系,在配置文件中配置 --> ????<!--          name屬性:   集合屬性名         column屬性: 外鍵列名         class屬性:  與我關聯的對象完整類名      --> ?????<!--           級聯操作: cascade屬性              save-update: 級聯保存更新              delete:      級聯刪除              all:         save-update+delete          級聯操作: 簡化操作.目的就是為了少些兩行代碼.       --> ??????<!-- inverse屬性: 配置關系是否維護.                   true:          customer不維護關系                  false(默認值): customer維護關系           inverse屬性: 性能優化.提高關系維護的性能.           原則: 無論怎么放棄,總有一方必須要維護關系.           一對多關系中: 一的一方放棄.也只能一的一方放棄.多的一方不能放棄.       --> ????<set> ????????<key></key> ????????<one-to-many></one-to-many> ????</set>

多:

????<!-- 多對一 --> ????<!--          name屬性:   引用屬性名         column屬性: 外鍵列名         class屬性:  與我關聯的對象完整類名      --> ?????<!--           級聯操作: cascade屬性              save-update: 級聯保存更新              delete:      級聯刪除              all:         save-update+delete          級聯操作: 簡化操作.目的就是為了少些兩行代碼.       --> ??????<!-- 多的一方: 不能放棄維護關系的.外鍵字段就在多的一方.  --> ????<many-to-one></many-to-one>

多對多

實體類

多:private?Set<user>?users;?//?表達多對多關系 多:private?Set<role>?roles;?//?表達多對多關系</role></user>

配置文件
?多:

????<!-- 多對多關系表達 --> ????<!--          name: 集合屬性名         table: 配置中間表名         key          column: 外鍵,別人引用"我"的外鍵列名         many-to-many          class:   我與哪個類是多對多關系          column:  外鍵.我引用別人的外鍵列名      --> ????<!-- 使用inverse屬性         true: 放棄維護外鍵關系         false(默認值):維護關系              結論: 將來在開發中,如果遇到多對多關系.一定要選擇一方放棄維護關系.          一般誰來放棄要看業務方向. 例如錄入員工時,需要為員工指定所屬角色.          那么業務方向就是由員工維護角色. 角色不需要維護與員工關系.角色放棄維護      -->???????? ????<set> ????????<key></key> ????????<many-to-many></many-to-many> ????</set>

多:

????<!-- 多對多關系表達 --> ????<!--          name: 集合屬性名         table: 配置中間表名         key          column: 外鍵,別人引用"我"的外鍵列名         many-to-many          class:   我與哪個類是多對多關系          column:  外鍵.我引用別人的外鍵列名      --> ?????<!-- cascade級聯操作:                  save-update:  級聯保存更新                  delete:       級聯刪除                  all:          級聯保存更新+級聯刪除          結論: cascade簡化代碼書寫.該屬性使不使用無所謂. 建議要用只用save-update.               如果使用delete操作太過危險.尤其在多對多中.不建議使用.      --> ????<set> ????????<key></key> ????????<many-to-many></many-to-many> ????</set>

相關推薦:

數據庫設計多對多關系的幾種形態_MySQL

數據庫設計多對多關系的幾種形態_MySQL

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享