NHibernate - HQL и углубленные внутренние соединения - PullRequest
0 голосов
/ 10 ноября 2011

Я хочу знать галактики, в которых есть планеты с спутниками типа «Шпион» и человеческими видами.

Мне трудно написать несколько внутренних соединений разного уровня глубины.

Вот одна из моих попыток:

select gal from Galaxy gal inner join gal.PlanetList planets
inner join planets.SattelitesList satts,
planets inner join planets.SpeciesList spec 
where spec.Name = 'Human' AND satts.Type = 'Spy'

Я знаю, что это работает, но у него есть только одна ветвь глубины (как одна ветвь двоичного дерева):

select gal from Galaxy gal inner join gal.PlanetList planets
inner join planets.SattelitesList satts where satts.Type ='Spy'

Спасибо

1 Ответ

3 голосов
/ 10 ноября 2011

Не работает так?

from
  gal from Galaxy gal 
  join gal.PlanetList planets
  join planets.SattelitesList satts
  join planets.SpeciesList spec 
where spec.Name = 'Human' AND satts.Type = 'Spy'
...