NHibernate HQL non supporta la parola chiave "with"?
-
06-07-2019 - |
Domanda
Sto cercando di creare un HQL che possa lasciare valori di join da una raccolta, per darmi la possibilità di verificare che "sia nullo". su di esso.
Tratto dall'esempio del manuale di ibernazione:
from Cat as cat left join cat.kittens as kitten with kitten.bodyWeight > 10.0
non sembra funzionare in NHibernate, poiché non riconosce " con " parola chiave. In quale altro modo dovresti abbandonare il join e verificare la presenza di voci non corrispondenti se non riesci a specificare le clausole di join direttamente nel tuo join anziché nell'istruzione WHERE?
Uso NHibernate 2.0.0.
Soluzione
Sfortunatamente, questo non è supportato in NHibernate. Era richiesto per la prima volta nel 2005 ed è di gran lunga la funzionalità richiesta più popolare.
Altri suggerimenti
Penso che tu possa aggirare il problema utilizzando un join esterno, quindi fai questo:
from Cat c
left join c.Kittens as kitten
where kitten.bodyweight > 10 or kitten.bodyweight is null
Apparentemente ci stanno lavorando ... https://nhibernate.jira.com/browse/NH-514
Ieri ho ricevuto un rapporto di aggiornamento da NHibernate JIRA e questo problema dovrebbe essere risolto in NHibernate v2.1.0 Alpha 3 :)