>我有一个 HBM 文件,我想在其中放置和执行原始 sql 查询。这是我放在 hbm 文件中的内容:
<sql-query name="SqlSrcMyStuff" callable="true" >
<return-scalar column="RU_ID" type="System.Int32" />
<![CDATA[
select some_id
from some_table
where param1 = ? and param2 = ?
]]>
</sql-query>
这是我的代码:
IList listOfRules = objMyDAO.GetByNamedQuery("SqlSrcMyStuff", arrParams);
但我收到异常"无法执行查询"。但是当我接受查询时,它显示在异常中并替换参数并针对我的数据库运行 - 查询执行正常。
如何让它运行我的原始 sql 查询?
HBM 应该是
<sql-query name="SqlSrcMyStuff" callable="true" >
<return-scalar column="RU_ID" type="System.Int32" />
<![CDATA[
select some_col AS RU_ID
from some_table
where somecol1 = :param1 and somecol2 = :param2
]]>
</sql-query>
和一个查询
var result = session.GetNamedQuery("SqlSrcMyStuff")
.SetInt32("param1", 1)
.SetInt32("param2", 1)
.UniqueResult<int>();
这里的结果应该只是一个整数,而不是 IList...因为这就是我们所说的(标量作为返回(Als 检查类似的问答