【问题标题】:where employer.employees.gender = 'm', or how to filter a list of Items on a field of Item?其中employees.employees.gender = 'm',或者如何过滤Item 字段上的Item 列表?
【发布时间】:2013-03-13 09:55:17
【问题描述】:

雇主有许多雇员(一对多的关系)。以下是我为给定 :employer 选择员工的方法:

select employer.employees
from Employer employer
where employer = :employer

我想过滤结果以仅获取 gender 字段为 m 的员工。我如何使用 HQL 来实现这一点? doc 中有没有我没有注意到的子句?

理想情况下,类似于:

and employer.employees.gender = 'm'

或者:

and each(employer.employees).gender = 'm'

【问题讨论】:

  • 您正朝着正确的方向前进。您是否遇到了一些错误和条件?您提到的文档中的 14.9 有类似的示例..
  • @Meherzad 14.9 的示例用于多对一关系,而我正在处理一对多关系,这正是重点......

标签: hibernate select join filter hql


【解决方案1】:

试试这个查询

SELECT ey.name
FROM Employer employer
LEFT JOIN employer.employees ey
WHERE ey.gender = 'm' AND employer = :employer

希望这会有所帮助。

【讨论】:

  • 这可以完成这项工作,但它会返回一个雇主而不是其雇员列表......
猜你喜欢
  • 1970-01-01
  • 2021-10-22
  • 2016-12-09
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多