0

我的包包含以下过程-->

包体 myNewack 作为过程 DisplayEmployees(Emplist OUT refCursor) 开始打开 ​​Emplist 用于从员工中选择 EmpId、FirstName、LastName;结尾; 结束我的新包;

我的 hbm 映射文件包含以下命名查询 -->

<sql-query name="mytestsp" callable="true">
 call MYNEWPACK.DISPLAYEMPLOYEES()
</sql-query>

从.net,我使用以下代码调用此过程

public IList<NhbHelper.Employee> GetEmployees()
{
  IList<NhbHelper.Employee> myList;
  ISession session = NHibernateHelper.GetCurrentSession();
  var query= session.GetNamedQuery("mytestsp");
  return query.List<NhbHelper.Employee>();
}

每当我执行此代码时,我都会收到错误“无法执行查询 [调用 MYNEWPACK.DISPLAYEMPLOYEES()] [SQL:call MYNEWPACK.DISPLAYEMPLOYEES()]”

请帮我解决这个问题,我如何执行返回 refcursor 的 oracle 程序

4

1 回答 1

0

我猜您缺少 hbm 映射文件中的返回定义。
它应该是这样的:

<sql-query name="mytestsp" callable="true">
    <return class="NhbHelper.Employee, NhbHelper" />
    call MYNEWPACK.DISPLAYEMPLOYEES()
</sql-query>

几个月前我在同样的问题上苦苦挣扎。我正在使用 PACKAGES 并想出了这个解决方案

如果您想了解更多信息,可以阅读一篇对我有很大帮助的好文章。

更新:

您可以混合使用 HBM 和流利的映射

于 2012-05-30T08:04:01.883 回答