Hibernate中的一對多關係對映
Hibernate框架中關係對映中有:一對一、一對多和多對多,但常用的就是一對多,所以本篇部落格就大體概述了一下一對多關係對映。
一對多關係:
例如:客戶和訂單,客戶是一,訂單是多
-
建立customers、orders資料表
-
在多方新增一方的外來鍵 (在orders表新增customer_id)
建立多對一關係對映 :
-
在 Order.hbm.xml 配置<many-to-one>
-
<many-to-one name="customer" class="com.baidu.one2many.Customer" column="customer_id"></many-to-one>
-
* name:設定待對映的持久化類的屬性名字。
-
* column:設定和持久化類的屬性對應的表的外來鍵。
-
* class:設定持久化類的屬性的型別。
-
* not-null:是否允許為空。
-
建立一對多關係對映:
-
在Customer.hbm.xml 新增<set> 元素
<set name="orders">
<key column="customer_id" not-null="true"></key>
<one-to-many class="com.baidu.one2many.Order"/>
</set>
-
name :設定Customer中集合型別屬性名稱
-
<key column :設定生成資料表中外來鍵欄位名稱
-
not null :設定外來鍵欄位非空約束
-
<one-to-many > :設定一對多對映關係
-
class :設定對映關聯目標PO類
一對多儲存操作:
一對多儲存操作--級聯儲存
一對多儲存操作--物件導航
一對多刪除操作--級聯刪除(不建議使用delete!!!)
建議使用delete-orphan:
cascade屬性:
inverse屬性:目的是減少雙向維護帶來的多餘sql,提高效率
一對多中的父子關係