2009-03-17 7 views
4

NHと辞書をマッピングしています。次のように宣言は次のとおりです。NHibernate fetch = "join"マッピング属性が機能していないようです。

<hibernate-mapping ... 
    <map 
     name="CostsByRole" 
     table="JobAccountingSnapshotCosts" 
     lazy="false" 
     fetch="join" 
     access="nosetter.camelcase-underscore"> 
      <key column="SnapshotId" /> 
      <index column="RoleCode" type="String" /> 
      <element column="Amount" type="Decimal" /> 
    </map> 
</hibernate-mapping> 

私は、生成される単一のSQLクエリを期待していますが代わりに、私は2を取得する:辞書の内容のための選択に続いて、実際のオブジェクトの選択。

アイデア?

+1

ええと...誰でも落としてしまえば、理由を説明できるかもしれない?私には合法的な質問のように見えます。 –

+0

あなたのマッピングでは、join = "fetch"は入力ミスですか? –

+0

私はちょうど逐語的に再フォーマットされた、それはもともとそこにあった。 – Kev

答えて

6

HQLクエリでは、マッピングでフェッチに設定された値は考慮されません。各HQLクエリで排他的に指定する必要があります。それはおそらく設計によるものです。 fetch属性値は、CriteriaクエリとLoad/Getによってのみ使用されます。

1

提出時に入力ミスではないとすれば、問題はあなたのマッピングにjoin="fetch"部分である可能性があります。 fetch="join"で、fetchのデフォルトは「選択」であるため、順次選択問題が発生します。

+0

確かに、それはタイプミス(それをキャッチしてくれてありがとう!)、今修正されました。 –

関連する問題