【问题标题】:How can i write Hibernate Criteria我如何编写休眠标准
【发布时间】:2012-05-06 14:06:32
【问题描述】:

我们可以在哪些条件下添加限制?

对于 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;

【问题讨论】:

  • activityStep 是参考还是集合?为什么 currentStep 是一个数字而不是对 Step 的引用?
  • activityStep 只是对另一个表的引用,这就是使用简单连接的原因。上面的查询使用 EMPLOYEE_ACTIVITY_ID 对两个表 EmployeeActivity 和 ActivityStep 进行了简单的连接。

标签: hibernate hql hibernate-mapping hibernate-criteria


【解决方案1】:

虽然我不确定查询应该做什么

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-09
    • 2012-12-24
    • 2021-10-19
    • 2011-08-13
    • 2011-04-11
    • 1970-01-01
    相关资源
    最近更新 更多