2012-04-25 50 views
0

我们可以在标准中添加限制吗?我该如何编写休眠标准

对于HQL-1#

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 2012-04-26 09:58:20

+0

activityStep只是引用另一个表,这就是为什么使用简单的连接。上面的查询使用EMPLOYEE_ACTIVITY_ID简单地连接到两个EmployeeActivity&ActivityStep表。 – gviswanathan 2012-04-26 16:50:04

回答

1

虽然我不知道查询应该做什么

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