標籤:多對一 客戶 one inverse 無法 tab 集合 關聯 false
1.one-to-many一對多關聯性的映射配置(在一的一方實體對應檔中配置)
<!-- cascade屬性:級聯操作屬性 save-update: 級聯儲存,儲存客戶時,級聯儲存客戶關聯的連絡人 delete:串聯刪除,刪除客戶時,串聯刪除客戶關聯的連絡人 all:級聯儲存+串聯刪除--><!-- inverse屬性:設定是否不維護關聯關係 true:不維護關聯 false(預設值):維護關聯 --> <!-- 一對多 --> <set name="linkMen" inverse="true" > <!-- 外鍵列名 --> <key column="lkm_cust_id" ></key> <!-- 該集合是一對多關聯性表達,關聯的對象時linkman --> <one-to-many class="LinkMan" /> </set>
一對多|多對一關聯性中,放置sql語句冗餘.一般選擇一的一方放棄維護,inverse屬性設定為true.
2.many-to-one 多對一關聯性映射配置(在多的一方實體對應檔中配置)
<!-- cascade屬性:級聯操作屬性 save-update: 級聯儲存,儲存客戶時,級聯儲存客戶關聯的連絡人 delete:串聯刪除,刪除客戶時,串聯刪除客戶關聯的連絡人 all:級聯儲存+串聯刪除 --> <!-- 沒有inverse屬性: 外鍵列所在實體,無法放棄維護關聯關係. --> <!-- 多對一 --> <many-to-one name="customer" column="lkm_cust_id" class="Customer" ></many-to-one>
3.many-to-many多對多關係映射配置
<!-- 多對多關係配置 table:中間表表名--><!-- inverse屬性:設定是否不維護關聯關係 true:不維護關聯 false(預設值):維護關聯--><!-- cascade屬性:級聯操作屬性 save-update: 級聯儲存,儲存客戶時,級聯儲存客戶關聯的連絡人 delete:串聯刪除,刪除客戶時,串聯刪除客戶關聯的連絡人 all: 級聯儲存+串聯刪除 --> <set name="roles" table="sys_user_role" > <!-- 別人引用"我"的外鍵列名 --> <key column="user_id" ></key> <!-- 表達集合是多對多關係 class屬性:表達我與誰是多對多 column屬性:表達另外一個外鍵列名 --> <many-to-many class="Role" column="role_id" ></many-to-many> </set>
多對多關係中,選擇一方發起維護關係,放置中間表資料錄入重複,根據商務邏輯決定,如商品和訂單是多對多關係,訂單維護商品放棄維護
hibernate中多表映射關係配置