0

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」ではエイリアスは使用されません。もちろん、ボットテーブル「障害」と「レビュー」は結合されており、両方に「タイムスタンプ」列があるため、これはまさにその例外につながります。この行を "" から "" に変更すると、すべて正常に動作します。しかし、サブフォールトをタイムスタンプ順並べる必要があります。私は何を間違っていますか?

4

1 に答える 1