Разве NHibernate HQL не поддерживает ключевое слово “with”?
-
06-07-2019 - |
Вопрос
Я пытаюсь создать HQL, который может объединять значения из коллекции, чтобы дать мне возможность проверить "is null" на нем.
Взято из примера из руководства по переходу в спящий режим:
from Cat as cat left join cat.kittens as kitten with kitten.bodyWeight > 10.0
похоже, не работает в NHibernate, поскольку он не распознает ключевое слово "with".Как еще вы можете оставить join и проверить, нет ли совпадающих записей, если вы не можете указать join-предложения непосредственно в своем join, в отличие от вашего WHERE-оператора?
Я запускаю NHibernate 2.0.0.
Решение
К сожалению, это не поддерживается в NHibernate. Он был впервые запрошен в 2005 году и, безусловно, является самой популярной запрашиваемой функцией. р>
Другие советы
Я думаю, что вы можете обойти это, используя внешнее соединение, а затем сделать это:
from Cat c
left join c.Kittens as kitten
where kitten.bodyweight > 10 or kitten.bodyweight is null
Очевидно , они работают над этим ...https://nhibernate.jira.com/browse/NH-514
Вчера я получил отчет об обновлении от NHibernate JIRA, и эта проблема должна быть исправлена в NHibernate v2.1.0 Alpha 3 :)