0

任何人都可以告诉我下面使用NHibernate的名为 SQL Query 的查询有什么问题。当我收到错误时 - “命名查询中的错误:GetSecondReviewIncomeStatements”:

 <sql-query name="GetSecondReviewIncomeStatements" read-only="true">
 <![CDATA[
  SELECT I.TotalNetSales,I.CostOfGoodsSold,I.GrossProfit
  FROM IncomeStatement as incomeStatement
  INNER JOIN FETCH CompSearchResultItem as resultItem
  ON incomeStatement.Comparable.ID = resultItem.Comparable.ID
  AND resultItem.CompSearch.ID = :compSearchID     
  ]]>-->
 </sql-query>-->

我在网上搜索了很多,有人说放在Onput上Where。我也只尝试过NamedQuery,但每次我得到同样的错误。

4

2 回答 2

0

如果你把它'原样'放在你的 rdbms sql 执行器中,你的 SQL 会运行吗?

-->除了封闭元素之后的奇怪之外CDATA,我注意到您没有I在查询中声明别名。

我的意思是,这些列前面有I...

SELECT I.TotalNetSales,I.CostOfGoodsSold,I.GrossProfit

……从哪里来?

于 2013-05-17T02:02:19.667 回答
0

请检查.hbm.xml文件中命名查询的格式。

在 hbm.xml 中

     <sql-query name="ShowProducts">
        <return alias="Product" class="Product" />
        exec ShowProducts
      </sql-query>

<sql-query name="DeleteProducts">
    <query-param name="Id" type="int"></query-param>

    exec DeleteProducts @ID=:Id
  </sql-query>

在代码使用

 IQuery query = (IQuery)session.GetNamedQuery("ShowProducts");


        var listProducts = query.List<Product>();

        GridView1.DataSource = listProducts;
        GridView1.DataBind();
于 2013-05-16T10:26:11.510 回答