您好,登錄后才能下訂單哦!
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中多表映射關系配置就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。