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

