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_actionid_areaStatus的外键,这是Version的一个性质。我需要在这个包映射上引用Status吗?我该怎么描绘这个案子?

谢谢

NHibernate映射包,从属性的属性中获取键

我能够找到问题:我在答案上使用的映射几乎是正确的。然而,我需要逆映射上列的顺序。因为两个键(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>