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 查询,但我得到了两个:一个用于实际对象的选择,然后是一个用于字典内容的选择。

有任何想法吗?

4

2 回答 2

6

HQL 查询不考虑映射中为 fetch 设置的值。您需要在每个 HQL 查询中专门指定它们。据说是设计使然。提取属性值仅由条件查询和加载/获取使用。

于 2010-01-20T21:27:59.750 回答
1

假设这不是提交时的拼写错误,那么问题可能出join="fetch"在您的映射中。它应该是fetch="join"并且由于默认为fetch“选择”,这将产生您的顺序选择问题。

于 2009-03-17T20:20:11.933 回答