0

私のパッケージには次の手順が含まれています->

パッケージ本体myNewackasProcedure DisplayEmployees(Emplist OUT refCursor)従業員からEmpId、FirstName、LastNameを選択するためにEmplistを開き始めます。終わり; myNewPackを終了します。

私の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: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 に答える