2008-11-06 3 views
4

Я пытаюсь построить HQL, который может оставить значения объединения из коллекции, чтобы дать мне возможность проверить «null» на нем.Не поддерживает ли NHibernate поддержку HQL с ключевым словом?

Взятые из примера из спящего режима инструкции:

 
from Cat as cat 
    left join cat.kittens as kitten 
     with kitten.bodyWeight > 10.0 

не похож на работу в NHibernate, так как он не признает «с» ключевым словом. Как еще вы должны были присоединиться к объединению и проверить наличие несоответствующих записей, если вы не можете указать соединения-предложения непосредственно в своем соединении, а не в вашем WHERE-заявлении?

Я запускаю NHibernate 2.0.0.

+0

Они, похоже, внедрили его в NH 2.1, однако с некоторыми причудами. – jishi 2009-08-31 09:03:15

ответ

2

К сожалению, это не поддерживается в NHibernate. Это было first requested in 2005 и на сегодняшний день является наиболее востребованной функцией.

+0

У вас нет никаких предложений об обходном пути, или если это может быть достигнуто с использованием критериев в некотором роде? – jishi 2008-11-06 19:52:10

1

Я думаю, вы можете обойти его с помощью внешнего соединения, а затем сделать это:

from Cat c 
left join c.Kittens as kitten 
where kitten.bodyweight > 10 or kitten.bodyweight is null 
1

Видимо, они работают над этим ... https://nhibernate.jira.com/browse/NH-514

Я получил обновление отчет от NHibernate JIRA вчера, и этот вопрос должен быть исправлен в NHibernate v2.1.0 Alpha 3 :)

Смежные вопросы