我发现使用JPA 2.1调用存储过程会遇到一些麻烦。
让我们假设我的程序看起来像这样
create procedure [_get_agreements_by_status]
@status int
as
begin
select
iAgreementId
,sSignature
,iStatus
from agreement
where iStatus = @status
end
当我从apprication调用程序时,Everythings工作正常 - 我收到了我的结果集,我可以继续前进。
这是剪辑它在Java中的外观
StoredProcedureQuery query = em.createStoredProcedureQuery("_get_agreements_by_status");
query.registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN);
query.execute();
到目前为止一切顺利。当我需要在我的程序中使用临时表时,问题就出现了。一旦我向程序添加临时表,我就无法得到结果集。 什么更令人不安的#table并不是必须成为任何查询的一部分。
我做错了什么?
数据库是MS SQL Server 2008,JPA 2.1,JDBC驱动程序4.0