任何正文都可以使用 NHibernate 告诉我下面的查询命名SQL查询有什么问题。 因为我收到错误 - “命名查询错误: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>-->
我在网上搜索了很多内容,有人说On
放Where
。
我也只尝试了NamedQuery
但每次我都遇到同样的错误。
答案 0 :(得分: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();
答案 1 :(得分:0)
如果你在rdbms sql执行器中“按原样”放置SQL,你的SQL会运行吗?
除了封闭的-->
元素之后的奇怪CDATA
,我注意到您没有在查询中声明I
别名。
我的意思是,这些列前面有I
...
SELECT I.TotalNetSales,I.CostOfGoodsSold,I.GrossProfit
......来自哪里?