代码之家  ›  专栏  ›  技术社区  ›  Castrohenge

使用HQL时出现“实体未映射”异常。使用标准

  •  1
  • Castrohenge  · 技术社区  · 14 年前

    在讨论这个问题之前,这里有一些背景:

      1. 一个包含实体类和问题HQL的类。
      2. 测验。
      3. 网站。
    1. 的测试程序集中的所有测试都通过了HQL。
    2. 异常在网站中抛出。

    把问题解决了。调用以下HQL时

    var commentCount = 
        session.CreateQuery("select e.CommentCount from Entity e where e.Id = :entityId")
        .SetParameter("entityId", string.Format("{0}:{1}", entityType, entityId))
        .UniqueResult<int>();
    

    引发此异常:

    实体未映射[从实体e中选择e.CommentCount,其中e.Id=:entityId]

    如前所述,我可以改为使用标准,但我担心标准的使用可能会掩盖一个潜在的问题。

    有什么想法吗?谢谢。

    3 回复  |  直到 14 年前
        1
  •  2
  •   Castrohenge    14 年前

    代码如下:

    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
        <session-factory name="demo">
            <mapping assembly="Users" />
        </session-factory>
    </hibernate-configuration>
    

        2
  •  0
  •   rebelliard    14 年前

    使用 C级# as string

    var commentCount =  session.CreateQuery("select e.CommentCount from Entity e where e.Id = :entityId and rownum <= 1")
                               .SetParameter("entityId", string.Format("{0}:{1}", entityType, entityId))
                               .UniqueResult() as string;
    

    请注意,您可能需要添加 and rownum <= 1

        3
  •  0
  •   Diego Mijelshon    14 年前

    添加 auto-import="true" 给你的 hibernate-mapping 元素。应该会处理好的。