我很難從使用Hibernate和Java的存儲過程獲取返回值(整數)。使用Java和休眠從存儲過程獲取返回值(標量),而不是結果表
我的存儲過程如下:
create proc dbo.CheckEquipmentAuthorization
@ReplicaId int
as
declare @IDAuthType int
select @IDAuthType = AuthorizationType.IDAuthorizationType from AuthorizationType
inner join ReplicaAuthorization on ReplicaAuthorization.RefIDAuthorizationType = AuthorizationType.IDAuthorizationType
inner join Replica_ReplicaAuthorization on Replica_ReplicaAuthorization.RefIDAuthorization = ReplicaAuthorization.IDAuthorization
inner join Replica on Replica.IDReplica = Replica_ReplicaAuthorization.RefIDReplica
where Replica.IDReplica = @ReplicaId
and GETDATE() between ReplicaAuthorization.AuthBegin and ReplicaAuthorization.AuthEnd
declare @AuthIntValue int
set @AuthIntValue = 10
if (@IDAuthType is not null)
begin
select @AuthIntValue = AuthorizationType.IntValue from AuthorizationType
where AuthorizationType.IDAuthorizationType = @IDAuthType
end
print @AuthIntValue
return @AuthIntValue
我試圖用得到的返回值:
query = session.createSQLQuery(
"exec CheckEquipmentAuthorization(:replicaId)")
.setParameter("replicaId", replicaId);
但似乎我只能用這個得到一個結果表,由於沒有從我的過程中生成結果表,我也不想要一個結果表,它失敗了。
有沒有辦法使用createSQLQuery()方法得到返回值?
我正在使用Hibernate,Java和SQL Server。存儲過程正常工作(我已經用sql客戶端測試過)。
謝謝。
我說我下面的最終工作的解決方案,以幫助任何人有同樣的問題。 – lm2s