Abfrage mit NHibernate

7

Ich bin neu in NHibernate und versuche herauszufinden, wie ich meine Daten abfragen kann.

Unten ist die Konfigurations-XML. Nur das Rezept wird angezeigt.

Ich möchte in der Lage sein, Rezepte anhand von eingegebenen Schlüsselwörtern nach Rezepttiteln abzufragen und auch Zutaten aus Zutatenname.

So können Sie beispielsweise "Pasta Wein" eingeben.

Das habe ich ausprobiert, gibt mir aber einen Fehler.

%Vor%

Ich möchte die Sammlungen auch gerne laden.

Will ich nachfragen, oder? Ich muss den Abfrage-String aus meinen Suchkriterien erstellen können. Das wäre in SQL einfach von mir.

Malcolm

%Vor%     
Malcolm 08.05.2009, 03:54
quelle

3 Antworten

22

Um dynamische Abfragen zu erstellen, würde ich die Kriterien-API verwenden. Dies macht die dynamische Abfrage sehr viel stabiler, da Sie keine String-Operationen benötigen, um sie aufzubauen.

%Vor%

Bearbeiten:

Beim eifrigen Laden können Sie den Abrufmodus einstellen:

%Vor%

Aber ich würde das nicht tun , weil Sie die Ergebnisse mit der Anzahl der Bilder, Kommentare und Zutaten multipliziert bekommen. Wenn Sie also 4 Bilder, 2 Kommentare und 12 Zutaten haben, erhalten Sie Ihr Rezept 96 Mal. Sie erkennen das nicht, weil NHibernate die Dinge wieder zusammenfügt, aber es generiert Verkehr zwischen der Anwendung und der Datenbank. Also lasst NHibernate es besser mit separaten Abfragen laden.

Eine weitere Bearbeitung zum Anzeigen der dynamischen Abfragezusammensetzung.

%Vor%     
Stefan Steinegger 08.05.2009, 08:31
quelle
5

Sowohl Stefans als auch Sathishs Beispiele verketten% Operatoren in SQL. Dies ist nicht notwendig, da Restrictions.Like (nhib 2.0+) und Expression.Like (vor v2.0) 3 Parameterversionen mit einem MatchMode haben.

%Vor%

Volltextabfragen sind auch mit NHibernate Search verfügbar. Siehe Ayendes Beispiel für weitere Details.

    
Lachlan Roche 11.05.2009 11:43
quelle
1

Hier sind die obigen Kriterien mit dynamischen Keywords

%Vor%     
Sathish Naga 10.05.2009 18:46
quelle