NHibernate映射包,从属性的属性中获取键
本文关键字:属性 获取 从属性 映射 NHibernate | 更新日期: 2023-09-27 18:03:36
我有以下结构:
public class Version
{
public Status Status;
}
public class Status
{
Action Action;
Area Area;
public IList<Version> Versions
}
public class Action
{
public int Id;
}
public class Area
{
public int Id;
}
我想用一个包映射版本列表,但是我可能映射的方式是错误的。下面是Status.hbm.xml文件中映射列表的部分:
<bag name="Versions" cascade="save-update" inverse="true" lazy="true" generic="true" order-by="num_version desc">
<key>
<column name="id_action"></column>
<column name="id_area"></column>
</key>
<one-to-many class="Version" />
</bag>
id_action
和id_area
是Status
的外键,这是Version
的一个性质。我需要在这个包映射上引用Status
吗?我该怎么描绘这个案子?
谢谢
我能够找到问题:我在答案上使用的映射几乎是正确的。然而,我需要逆映射上列的顺序。因为两个键(action和area)的顺序必须与它们在status.hbm.xml文件的映射中定义的顺序相同。
所以,更正就是这样做的:
<bag name="Versions" cascade="save-update" inverse="true" lazy="true" generic="true" order-by="num_version desc">
<key>
<column name="id_area"></column>
<column name="id_action"></column>
</key>
<one-to-many class="Version" />
</bag>