Nhibernate无法执行查询-Oracle过程返回refcursor
我的包包含以下过程--> 包体myNewack as 过程显示员工(员工列表输出参考光标) 是 开始 公开招聘 从员工中选择EmpId、FirstName、LastName; 结束; 结束我的新包 我的hbm映射文件包含以下命名查询-->Nhibernate无法执行查询-Oracle过程返回refcursor,nhibernate,Nhibernate,我的包包含以下过程--> 包体myNewack as 过程显示员工(员工列表输出参考光标) 是 开始 公开招聘 从员工中选择EmpId、FirstName、LastName; 结束; 结束我的新包 我的hbm映射文件包含以下命名查询--> 调用MYNEWPACK.DISPLAYEMPLOYEES() 在.net中,我使用以下代码调用此过程 public IList<NhbHelper.Employee> GetEmployees() { IList<NhbHelper.
调用MYNEWPACK.DISPLAYEMPLOYEES()
在.net中,我使用以下代码调用此过程
public IList<NhbHelper.Employee> GetEmployees()
{
IList<NhbHelper.Employee> myList;
ISession session = NHibernateHelper.GetCurrentSession();
var query= session.GetNamedQuery("mytestsp");
return query.List<NhbHelper.Employee>();
}
public IList GetEmployees()
{
伊利斯特糜棱岩;
ISession session=NHibernateHelper.GetCurrentSession();
var query=session.GetNamedQuery(“mytestsp”);
返回query.List();
}
每当我执行这段代码时,我都会出错
“无法执行查询
[调用MYNEWPACK.DISPLAYEMPLOYEES()]
[SQL:调用MYNEWPACK.DISPLAYEMPLOYEES()]
请帮助我解决此问题,我如何执行返回refcursor的oracle过程?我猜您在hbm映射文件中缺少了返回定义。
应该是这样的:
<sql-query name="mytestsp" callable="true">
<return class="NhbHelper.Employee, NhbHelper" />
call MYNEWPACK.DISPLAYEMPLOYEES()
</sql-query>
调用MYNEWPACK.DISPLAYEMPLOYEES()
几个月前,我还在为同样的问题挣扎。我用的是软件包,我想到了这个
如果你想了解更多,你可以读一本对我很有帮助的好书
更新:
你可以混合 嗨,LeftyX:但是我没有使用Fluent NHibernate类,那么还有其他的方法吗know@Tarak:我已经更新了我的答案。您可以混合使用HBM和fluent映射。如果我的答案对你来说足够好,你可以把它标记为“asnwered”,然后进行投票;-)
<sql-query name="mytestsp" callable="true">
<return class="NhbHelper.Employee, NhbHelper" />
call MYNEWPACK.DISPLAYEMPLOYEES()
</sql-query>