1. 程式人生 > >Hibernate中的一對多關係對映

Hibernate中的一對多關係對映

Hibernate框架中關係對映中有:一對一、一對多和多對多,但常用的就是一對多,所以本篇部落格就大體概述了一下一對多關係對映。

一對多關係:

例如:客戶和訂單,客戶是一,訂單是多

  • 建立customersorders資料表

  • 在多方新增一方的外來鍵 (在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,提高效率

一對多中的父子關係​​​​​​​