Hibernate と 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 クライアントでテストしました)。
ありがとうございました。