2012-05-11 14 views
-2

以下のクエリのNhibernate基準を作成しようとしていますが、適切な考え方が得られません。 PlzガイドNhibernate指定されたクエリの基準?

SELECT PEH.ResponseStatus FROM PatientEligibilityHistory PEH WHERE PEH.PatientId = " + patientId + " AND PEH.PayorId = " + payorId + " AND PEH.DateOfService = '" + dateOfService + "' AND PEH.Insured_Id = '" + insuredId + "' HAVING PEH.ResponseDateTime = MAX(PEH.ResponseDateTime) 

maxを使用して節を作成する方法を理解することができません。

+0

ICriteria基準= session.CreateCriteria(typeof演算(PatientEligibilityHistory))相関サブクエリを必要とします。 criteria.Add(Expression.And(Expression.In( "PatientId"、patientList)、Expression.In( "PatientCaseId"、patientCaseList))); criteria.Add(Expression.And(Expression.In( "PayorId"、payorList)、Expression.In( "InsuredId"、insuredList)))); criteria.SetProjection(Projections.RowCount()); しかし、今私は、私がunaleであるクエリにmetionedとしてhaving節を追加する必要があります。 – touseefkhan4pk

答えて

1

あなたは

DetachedCriteria query = DetachedCriteria.For<PatientEligibilityHistory>() 
    .Add(Expression.In("PatientId", patientList)) 
    .Add(Expression.In("PatientCaseId", patientCaseList)) 
    .Add(Expression.In("PayorId", payorList)) 
    .Add(Expression.In("InsuredId", insuredList)); 

DetachedCriteria subquery = CriteriaTransformer.Clone(query).SetProjection(Projections.Max("ResponseDateTime")); 

ICriteria criteria = query.GetExecutableCriteria(session) 
    .Add(Subquery.Eq("ResponseDateTime", subquery)); 
    .SetProjection(Projections.Max("ResponseStatus")); 
関連する問題