2012-04-25 7 views
0

条件に制限を加えることができるものは何ですか? HQL-1#Hibernate基準を書くにはどうすればいいですか

select activity from EmployeeActivity activity 
    join activity.activityStep as step 
    where 
    activity.currentStep = 1; 

Criteria ctr = getSession().createCriteria(EmployeeActivity.class) 
    .createCriteria("activityStep")//Where activityStep is the another entity which is joined 
    .add(Restrictions.eq("currentStep", 1)) 

しかし、どのように私は以下のHQLクエリーのために書く必要がありますについては

?そして、ベストプラクティスは何ですか?

select activity from EmployeeActivity activity 
    join activity.activityStep as step 
    where 
    activity.currentStep = step.stepNumber; 
+0

は '参照またはコレクションをactivityStep'され何をすべきかわからないが? currentStepの数値がStepへの参照ではないのはなぜですか? – Firo

+0

activityStepは別のテーブルへの参照であり、単純な結合を使用する理由です。上記のクエリは、EMPLOYEE_ACTIVITY_IDを使用して2つのテーブルEmployeeActivity&ActivityStepに簡単に結合します。 – gviswanathan

答えて

1

私は、クエリが

Criteria ctr = getSession().createCriteria(EmployeeActivity.class) 
    .createAlias("activityStep", "step") 
    .add(Restrictions.propertyEq("currentStep", "step.stepNumber"));