【发布时间】:2010-05-21 02:05:34
【问题描述】:
目前,我有一个 HQL 查询,它返回从一组指定奖项中获得 ANY 奖项的所有会员:
from Member m left join m.awards as a where a.name in ("Trophy","Ribbon");
我现在需要的是 HQL,它将返回所有拥有 ALL 奖励的会员,这些奖励在一组奖励中指定。
所以,假设这个数据:
Joe has Trophy, Medal
Sue has Trophy, Ribbon
Tom has Trophy, Ribbon, Medal
上面的查询将返回 Joe、Sue 和 Tom,因为这三个人都至少拥有 Trophy 或 Ribbon 之一。但我只需要归还 Sue 和 Tom,因为他们是唯一拥有所有指定奖项(奖杯和丝带)的人。
这是类结构(简化):
class Member {
private String name;
private Set<Award> awards;
}
class Award {
private String name;
}
【问题讨论】: