代码之家  ›  专栏  ›  技术社区  ›  Michael Teper Ryan Lee

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

  •  4
  • Michael Teper Ryan Lee  · 技术社区  · 16 年前

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

    有什么想法吗?

    2 回复  |  直到 15 年前
        1
  •  6
  •   Amith George    15 年前

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

        2
  •  1
  •   Stuart Childs    16 年前

    假设提交时没有错别字,问题可能是 join="fetch" 参与映射。应该是 fetch="join" 而且由于违约 fetch 是“选择”,这将产生顺序选择问题。