1.one-to-many 一對多關系的映射配置(在一的一方實體映射文件中配置)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<!-- 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 多對一關系映射配置(在多的一方實體映射文件中配置)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<!-- cascade屬性:級聯操作屬性 save-update: 級聯保存,保存客戶時,級聯保存客戶關聯的聯系人 delete:級聯刪除,刪除客戶時,級聯刪除客戶關聯的聯系人 all:級聯保存+級聯刪除 --> <!-- 沒有inverse屬性: 外鍵列所在實體,無法放棄維護關聯關系. --> <!-- 多對一 --> <many-to-one name= "customer" column= "lkm_cust_id" class = "Customer" ></many-to-one> |
3.many-to-many 多對多關系映射配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<!-- 多對多關系配置 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中多表映射關系配置就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。