我有以下结构:
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
?
我该如何映射这个案子?
谢谢
答案 0 :(得分:0)
我能够找到问题:我在答案中使用的映射几乎是正确的。 但是,我需要反转映射列的顺序。因为两个键(操作和区域)必须与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>