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.

È stato utile?

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 :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top