2008-11-06 5 views
4

J'essaye de construire un HQL qui peut laisser des valeurs jointes d'une collection, afin de me donner la chance de vérifier "est nul" dessus.Est-ce que NHibernate HQL ne supporte pas le mot-clé "with"?

Taken de l'exemple de mise en veille prolongée manuel:

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

ne semble pas travailler dans NHibernate, car il ne reconnaît pas le mot-clé « avec ». Sinon, comment êtes-vous censé quitter la jointure et vérifier les entrées sans correspondance si vous ne pouvez pas spécifier des jointures directement dans votre jointure par opposition à votre instruction WHERE?

Je cours NHibernate 2.0.0.

+0

Ils semblent l'avoir implémenté dans NH 2.1, mais avec quelques bizarreries. – jishi

Répondre

2

Malheureusement, ceci n'est pas supporté par NHibernate. C'était first requested in 2005 et est de loin la caractéristique demandée la plus populaire.

+0

Vous n'avez aucune suggestion sur une solution de contournement, ou si elle peut être réalisée en utilisant un critère d'une certaine manière? – jishi

+0

J'ai aussi voté pour cette suggestion, il y a un bout de temps ... Espérons que, il était une fois, ils l'appliquent –

1

Je pense que vous pouvez contourner en utilisant une jointure externe, puis le faire:

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

Apparemment, ils travaillent là-dessus ... https://nhibernate.jira.com/browse/NH-514

J'ai reçu une mise à jour rapport de NHibernate JIRA hier, et ce problème devrait être corrigé dans NHibernate v2.1.0 Alpha 3 :)

Questions connexes