Frage

Ich habe eine Einheit, die eine übergeordnete Entität haben könnte. Ich möchte diese Abfrage auszuführen:

Objekt wählen, wo entity.parent.id = 9

ein Teil der Einheit nicht über Eltern (entity.parent = null) und N HIBERNATE schlägt fehl, diese Abfrage auszuführen (QueryException - lösen kann nicht Eigentum)

Wie kann ich HQL alle Einheiten zu bekommen verwenden, die Eltern Einheiten mit der ID 9, der Vermeidung diejenigen hat, dass die Mutter null ist?

(Hinzufügen entity.parent ist nicht null vor dem entity.parent.id = 9 Ergebnisse in der gleichen Ausnahme)

Es gibt eine Option eine verschachtelte SELECT-Anweisungen zu verwenden, aber ich glaube nicht, das die effizienteste Lösung ist.

War es hilfreich?

Lösung

Sie fehlen in Ihrem HQL-Abfrage eine from Klausel. Versuchen Sie es wie folgt umschreiben:

from entity where entity.parent is not null and entity.parent.id = 9

Nicht sicher, aber wahrscheinlich das entity.parent is not null Teil ist nicht erforderlich. Ich nehme an NHibernate wird dieses Szenario behandeln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top