1 つのテーブル "Fault" (左側) 内に親子関係を設定し、右側のテーブルに関連エンティティ "Review" を設定しています。
------------------------------- -------------------
|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 コレクションにアクセスすると、あいまいな列 "Timestamp" に関する例外が発生します。生成されたクエリを見ると、問題がすぐに明らかになります。最後に、「ORDER BY Timestamp」ではエイリアスは使用されません。もちろん、ボットテーブル「障害」と「レビュー」は結合されており、両方に「タイムスタンプ」列があるため、これはまさにその例外につながります。この行を "" から "" に変更すると、すべて正常に動作します。しかし、サブフォールトをタイムスタンプ順に並べる必要があります。私は何を間違っていますか?