NHibernate fetch =“join”映射属性似乎不起作用

时间:2009-03-17 18:29:57

标签: nhibernate nhibernate-mapping

使用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 个答案:

答案 0 :(得分:6)

HQL查询不考虑映射中为fetch设置的值。您需要在每个HQL查询中专门指定它们。它应该是设计的。 fetch属性值仅由Criteria查询和Load / Get使用。

答案 1 :(得分:1)

假设提交时不是拼写错误,问题很可能是映射中的join="fetch"部分。它应该是fetch="join",因为fetch的默认值是“select”,这会产生顺序选择问题。

相关问题