0

次の HQL を持つアプリケーションがあります。

select distinct p from Position p
inner join fetch p.RequiredSkills rs
inner join fetch rs.Skill s
where s.Id in (:skills)

検索したスキルがあるポジションを検索しました。

現在、hql はそのスキルでポジションを返す限り機能しますが、フィルタリングされたスキルのみを取得しています。

ここで、ポジションに関連付けられているすべてのスキルを返したいと考えています。

これを行う方法はありますか?

乾杯、

ジェームズ

4

1 に答える 1

2

サブクエリを使用してみることができます:

select distinct p from Position p 
inner join fetch p.RequiredSkills rs 
inner join fetch rs.Skill s where p.Id in 
( select distinct pi.Id from Position pi
  inner join pi.RequiredSkills rsi
  inner join rsi.Skill si
  where si.Id in (:skills) )
于 2012-10-18T10:31:29.990 に答える