[英]NHIbernate <any> mapping issue
我正在將NHibernate用於電子商務網站,並且很難獲得應該是一個簡單的映射工作。 基本上我有一個ContactDetails實體,用於保存任何類型用戶的聯系方式 - 買方/賣方/廣告商/等。 我使用“any”映射來允許單個表保存每種類型的contact_details。 該ID將寫入contact_details_id,並將類型(買方/賣方/廣告商)寫入contact_details_type字段,如下所示。
<class name="ContactDetails" table="contact_details">
<id name="ID">
<generator class="hilo" />
</id>
<any name="Party" id-type="System.Int32" meta-type="System.String" cascade="all">
<meta-value value="buyer" class="Buyer" />
<meta-value value="seller" class="Seller" />
<column name="contact_details_type" />
<column name="contact_details_id" />
</any>
在我的買家映射中,我有一對一的聯系方式,如下所示
<one-to-one name="ContactDetails" class="ContactDetails" cascade="all" />
這一切看起來都很好,我能夠將contactdetails保存到數據庫中。 我的問題是,當我嘗試從數據庫加載買方時,不會返回ContactDetails。 生成的查詢不是加入contact_details_id字段,而是加入contact_details表的ID字段。 我已經嘗試了所有可能的但是無論發生什么,我都無法在正確的字段(contact_details_id)上獲取代碼。 有沒有人嘗試過這個,如果有的話,它是如何工作的? 如果需要額外的細節,請告訴我。
提前致謝,
J.P
隱式多態性不支持one-to-one
。
備擇方案:
Buyer
和Seller
,可以創建一個超級類別(您可以稱之為Party
),使用除隱式之外的任何策略映射層次結構,並使用常規one-to-one
或many-to-one
關系而不是any
(首選) Buyer
映射關系並改為使用查詢 (這里突出了隱式多態方法的局限性: http : //nhibernate.info/doc/nh/en/index.html#inheritance-limitations )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.