Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 使用JPA/Hibernate的存储过程的结果_Sql Server 2008_Hibernate_Stored Procedures_Jpa_Ejb - Fatal编程技术网

Sql server 2008 使用JPA/Hibernate的存储过程的结果

Sql server 2008 使用JPA/Hibernate的存储过程的结果,sql-server-2008,hibernate,stored-procedures,jpa,ejb,Sql Server 2008,Hibernate,Stored Procedures,Jpa,Ejb,我试图通过在EJB无状态会话bean中使用Hibernate从存储过程中检索结果 存储过程正在MS SQL Server 2008上运行,并将一个整数作为参数,然后返回另一个整数 我设法使用 Query q = em.createNativeQuery("name_of_my_procedure :param"); q.setParameter("param", sequence); q.executeUpdate(). 使用getResultList或getSingleResult而不是ex

我试图通过在EJB无状态会话bean中使用Hibernate从存储过程中检索结果

存储过程正在MS SQL Server 2008上运行,并将一个整数作为参数,然后返回另一个整数

我设法使用

Query q = em.createNativeQuery("name_of_my_procedure :param");
q.setParameter("param", sequence);
q.executeUpdate().
使用getResultList或getSingleResult而不是executeUpdate,总是会导致一个有趣的异常

在EJB3.0中,我发现:

JPA不支持存储过程,您必须依赖持久性提供程序的专有功能

我发现有几篇文章谈到通过SQL连接使用CallableStatement,但这个解决方案看起来非常不合适

有没有办法使用Hibernate检索我生成的id

多谢各位


Fred.

这不是对您问题的回答,但仅供参考,JPA 2.1支持(或将在发布时支持)a。唯一提供此AFAIK的JPA实现是DataNucleus JPA。

最终,我使用另一个存储过程修复了它

我创建了一个新的存储过程来调用另一个存储过程,并将结果存储在一个临时表中。 我在这个临时表上映射了一个实体,现在可以检索我需要的信息了


我知道这不是最优雅的方式,但我不想将SQL连接代码与JPA代码混合使用。

我已经看过了:它看起来很有趣,符合我的需要,但同时我需要一个使用JPA 2.0的解决方案。TopLink呢?它不也支持对存储过程的调用吗?如果你能用函数代替存储过程,那就很简单了。你能吗?