我在一个表“故障”(左侧)中设置了父子关系,并在右侧表中设置了关联实体“评论”。
------------------------------- -------------------
|Id|Parent|Timestamp|Review_Id| |Id|Note|Timestamp|
------------------------------- -------------------
我的休眠映射如下所示:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="Models" assembly="DataAccess">
<class name="Fault" table="Fault">
<cache usage="read-write" />
<id name="Id">
<column name="Id" not-null="true" />
<generator class="guid.comb" />
</id>
<many-to-one name="Parent" class="Fault" column="Parent_Id" cascade="all" />
<one-to-one name="Review" class="Review" property-ref="Fault" />
<bag name="SubFaults" lazy="true" order-by="Timestamp">
<key column="Parent_Id" />
<one-to-many class="Fault" />
</bag>
<property name="Timestamp" not-null="false" />
</class>
</hibernate-mapping>
当我访问 SubFaults 集合时,我得到一个关于不明确的列“时间戳”的异常。查看生成的查询很快就会发现问题。最后在“ORDER BY Timestamp”处没有使用别名。这导致了这个例外,因为当然机器人表“故障”和“审查”连接在一起,并且它们都有一个“时间戳”列。当我将这一行:“”更改为“”时,一切都很好。但我需要按时间戳对SubFaults 进行排序。我究竟做错了什么?