淺談hibernate中多表映射關(guān)系配置
1.one-to-many 一對多關(guān)系的映射配置(在一的一方實體映射文件中配置)
<!-- cascade屬性:級聯(lián)操作屬性 save-update: 級聯(lián)保存,保存客戶時,級聯(lián)保存客戶關(guān)聯(lián)的聯(lián)系人 delete:級聯(lián)刪除,刪除客戶時,級聯(lián)刪除客戶關(guān)聯(lián)的聯(lián)系人 all:級聯(lián)保存+級聯(lián)刪除 --> <!-- inverse屬性:設(shè)置是否不維護(hù)關(guān)聯(lián)關(guān)系 true:不維護(hù)關(guān)聯(lián) false(默認(rèn)值):維護(hù)關(guān)聯(lián) --> <!-- 一對多 --> <set name="linkMen" inverse="true" > <!-- 外鍵列名 --> <key column="lkm_cust_id" ></key> <!-- 該集合是一對多關(guān)系表達(dá),關(guān)聯(lián)的對象時linkman --> <one-to-many class="LinkMan" /> </set>
一對多|多對一關(guān)系中,放置sql語句冗余.一般選擇一的一方放棄維護(hù),inverse屬性設(shè)置為true.
2.many-to-one 多對一關(guān)系映射配置(在多的一方實體映射文件中配置)
<!-- cascade屬性:級聯(lián)操作屬性 save-update: 級聯(lián)保存,保存客戶時,級聯(lián)保存客戶關(guān)聯(lián)的聯(lián)系人 delete:級聯(lián)刪除,刪除客戶時,級聯(lián)刪除客戶關(guān)聯(lián)的聯(lián)系人 all:級聯(lián)保存+級聯(lián)刪除 --> <!-- 沒有inverse屬性: 外鍵列所在實體,無法放棄維護(hù)關(guān)聯(lián)關(guān)系. --> <!-- 多對一 --> <many-to-one name="customer" column="lkm_cust_id" class="Customer" ></many-to-one>
3.many-to-many 多對多關(guān)系映射配置
<!-- 多對多關(guān)系配置 table:中間表表名 --> <!-- inverse屬性:設(shè)置是否不維護(hù)關(guān)聯(lián)關(guān)系 true:不維護(hù)關(guān)聯(lián) false(默認(rèn)值):維護(hù)關(guān)聯(lián) --> <!-- cascade屬性:級聯(lián)操作屬性 save-update: 級聯(lián)保存,保存客戶時,級聯(lián)保存客戶關(guān)聯(lián)的聯(lián)系人 delete:級聯(lián)刪除,刪除客戶時,級聯(lián)刪除客戶關(guān)聯(lián)的聯(lián)系人 all: 級聯(lián)保存+級聯(lián)刪除 --> <set name="roles" table="sys_user_role" > <!-- 別人引用"我"的外鍵列名 --> <key column="user_id" ></key> <!-- 表達(dá)集合是多對多關(guān)系 class屬性:表達(dá)我與誰是多對多 column屬性:表達(dá)另外一個外鍵列名 --> <many-to-many class="Role" column="role_id" ></many-to-many> </set>
多對多關(guān)系中,選擇一方發(fā)起維護(hù)關(guān)系,放置中間表數(shù)據(jù)錄入重復(fù),根據(jù)業(yè)務(wù)邏輯決定,如商品和訂單是多對多關(guān)系,訂單維護(hù)商品放棄維護(hù)。
以上這篇淺談hibernate中多表映射關(guān)系配置就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決Error:(5, 28) java: 程序包org.apache.ibatis.io
這篇文章主要介紹了解決Error:(5, 28) java: 程序包org.apache.ibatis.io不存在問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05基于Spring boot @Value 注解注入屬性值的操作方法
這篇文章主要介紹了結(jié)合SpEL使用@Value-基于配置文件或非配置的文件的值注入-Spring Boot的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07使用@Transactional 設(shè)置嵌套事務(wù)不回滾
這篇文章主要介紹了使用@Transactional 設(shè)置嵌套事務(wù)不回滾問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07SpringCloud之熔斷器Hystrix的實現(xiàn)
這篇文章主要介紹了SpringCloud之熔斷器Hystrix的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08