[英]NHibernate nested class mapping issue
我有以下課程。 如何為MainBranch.Id列編寫映射文檔。 我在數據庫中沒有分支表,只想將branchId用於MAINBRANCHCODE。 任何想法?
public class Bundle
{
public virtual Decimal Id { get; set; }
public virtual BundleEntranceInformation Information { get; set; }
}
public class BundleEntranceInformation
{
public virtual Branch MainBranch { get; set; }
}
public class Branch
{
public virtual short Id { get; set; }
}
我的映射文件:
<class name="PromissoryNotes.Server.Data.Bundle, PromissoryNotes.Server.Data" table="BUNDLE" lazy="true">
<id name="Id" column="ID" type="Decimal">
<generator class="increment" />
</id>
<property name="Information.MainBranch.Id" column="MAINBRANCHCODE" type="short"></property>
</class>
使用組件映射
<class name="BundleEntranceInformation">
<component name="MainBranch">
<property name="Id" column="MAINBRANCHCODE"/>
</component>
</class>
public class MainClass
{
public virtual long MainKey {get; set;}
public virtual SubClass SubInstance {get; set;}
public class SubClass
{
public virtual long SubKey {get;set;}
}
}
可以映射為:
<class name="MainClass" table="Main">
<id name="MainKey" column="MainId" type="Int64">
<generator class="identity" />
</id>
<many-to-one name="SubInstance" class="MainClass+SubClass" Column="SubId"/>
</class>
<class name="MainClass+SubClass" table="Sub">
<id name="SubKey" column="SubId" type="Int64">
<generator class="identity" />
</id>
</class>
所以加號是關鍵(我相信java-hibernate使用美元符號$)
這是答案:)
<component name="Information">
<component name="MainBranch">
<property name="Id" column="MAINBRANCHCODE"/>
</component>
</component >
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.