Unterstützt die NHibernate-Kriterien-API Projektionen für Auflistungseigenschaften?

8

Ich muss die folgende funktionierende HQL-Abfrage mithilfe der Kriterien-API replizieren.

%Vor%

Die Abfrage wählt alle untergeordneten Elemente aus, die bestimmte Kriterien erfüllen, die zu übergeordneten Elementen gehören, die ein anderes Kriterium erfüllen. In meinem Beispiel sind beide Kriterien einfache Id-Gleichheiten, aber sie können alles Mögliche sein.

Aus irgendeinem Grund gibt die äquivalente Kriterien-API-Abfrage eine Liste mit der richtigen Anzahl von Elementen zurück, aber diese Elemente sind alle null.

%Vor%

Warum geben diese beiden Abfragen nicht die gleichen Ergebnisse zurück?

Hier ist das generierte SQL aus der HQL-Abfrage:

%Vor%

Und hier ist das SQL aus der Criteria-API-Abfrage:

%Vor%

Beachten Sie, dass die Verknüpfung zwischen Eltern und Kind unidirektional ist. Die untergeordnete Entität hat keine Referenzeigenschaft, die auf ihr übergeordnetes Element verweist.

Kann jemand eine Alternative vorschlagen, mit der ich diese Einschränkung umgehen könnte?

    
Nathan Baulch 13.05.2009, 08:27
quelle

2 Antworten

1

Sehen Sie sich in diesem Abschnitt "Nur-Abfrage" -Eigenschaften an Ссылка

Damit können Sie den Link bidirektional für Ihre Abfragen aussehen lassen.

    
Rashack 26.08.2009, 07:28
quelle
1

Es sieht so aus, als ob Sie nur die Kinder zurück wollen, also müssen Sie Ihre Kriterien ändern, um den Typ der untergeordneten Objekte zu erhalten, und dann die Eltern-ID als Auswahl verwenden.

%Vor%     
Scott Densmore 24.08.2009 18:13
quelle

Tags und Links