最近對NHibernate的中持久化對象間關系初次涉及,發現第一次并不是很好了解其中關系配置設定,心裡總是認為NHibernate架構關系配置設定不是很合理,但今天下午還就是拿了一個下午時間來研究One-to-One關系映射,相對其他one-to-many/many-to-one/many-to-mang關系而言,稍微簡單了解一些,我發現這個One-to-one實質其實就是一個特殊的one-to-many關系映射,NHibernate中加以細分.不加以廢話,切入正題.
持久化對象之間一對一的關聯關系是通過 one-to-one元素定義的.在對持久化對象配置檔案一個節點,為了友善了解後面的one-to-one中配置對該節點中涉及到屬性加以羅列:
--one-to-one總體結構

<one-to-one

name="PropertyName" (1)

class="ClassName" (2)

cascade="all|none|save-update|delete" (3)

constrained="true|false" (4)

fetch="join|select" (5)

property-ref="PropertyNameFromAssociatedClass" (6)

access="field|property|nosetter|ClassName" (7)

/>

--各個屬性定義:

(1)name:屬性名-必選屬性

(2)Class:呗關聯的類的名稱(可選-預設是通過反射得到的屬性類型)

(3) cascade(級聯) (可選) 表明操作是否從父對象級聯到被關聯的對象

(4)constrained(限制)表名該類對應的表對應的資料庫資料庫表,和被關聯的對象所對應的資料庫表之間,通過一個外鍵引用對主鍵進行限制。 這個選項影響Save()和Delete()在級聯執行時的先後順序以及 決定該關聯能否被委托(也在schema export tool中被使用).


(5) fetch (可選 - 預設設定為select): 在外連接配接抓取或者序列選擇抓取選擇其一.

(6) property-ref: (可選) 指定關聯類的屬性名,這個屬性将會和本類的主鍵相對應。如果沒有指定,會使用對方關聯類的主鍵。


(7) access (可選 - 預設是 property): NHibernate用來通路屬性的政策
在園子裡看到一個大牛寫的很不錯,總結的恰到好處,簡潔而切合實際應用,我就不加以啰嗦,收藏做日後備份
本文轉自chenkaiunion 51CTO部落格,原文連結:http://blog.51cto.com/chenkai/765441