4

辞書を NH でマッピングします。宣言は次のとおりです。

<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 つ取得します。実際のオブジェクトの選択と、それに続くディクショナリのコンテンツの選択です。

何か案は?

4

2 に答える 2

6

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

于 2010-01-20T21:27:59.750 に答える