2016-08-04 1 views
1

として、私は動的なクエリを持っています:私は、文字列としてこのクエリを渡すことによって、Queryオブジェクトを用意しておりますクエリが動的ステートメントの場合、hibernateでクエリパラメータをバインドする方法は?

DECLARE @LOERangeMin int =0 ; 
     DECLARE @LOERangeMax int = 0; 
     DECLARE @CycleStartStatus nvarchar(500) = :param1; 
     DECLARE @CycleEndStatus nvarchar(500) = :param2; 
     DECLARE @Team nvarchar(100) = NULL; 
     DECLARE @ReportStartDate datetime = NULL; 
     DECLARE @ReportEndDate datetime = GETDATE(); 

select min([Cycle Time]) AS AvgMinCycleTime,max([Cycle Time]) AS AvgMaxCycleTime,AVG([Cycle Time]) AS AvgCycleTime 
from EpicTable where EpicStartStatusName = @CycleStartStatus and EpicEndStatusName = @CycleEndStatus 

として:私は設定したい

この中
Query que = session.createSQLQuery(queryString); 

Que.setParameter( "param1"、CycleStartStatus)を使用したCycleStartStatusおよびCycleEndStatus;およびque.setParameter( "param2"、CycleEndStatus);

私はこの方法を試みましたが、 "org.hibernate.QueryParameterException:名前付きパラメータ[param1]"を見つけることができませんでした。だから誰も私を助けてください私はこれを行うことができますか?

答えて

0

この表記法を使用してHQLパラメータを配置する必要があります。:paramName

select min([Cycle Time]) AS AvgMinCycleTime, 
max([Cycle Time]) AS AvgMaxCycleTime, 
AVG([Cycle Time]) AS AvgCycleTime 
from EpicTable where EpicStartStatusName = :param1 
and EpicEndStatusName = :param2 

そして:このよう

Query que = session.createSQLQuery(queryString); 
que.setParameter("param1",CycleStartStatus); 
que.setParameter("param2",CycleEndStatus); 
+0

私はSQLを変更してパラメータを渡したいことができない、それは我々が持っている必要条件であります –

関連する問題