Allgemein
Der QueryProvider stellt Möglichkeiten zur Verfügung, Daten aus dem Nuclos-System und laden und in Form von BusinessObjects oder Listen von BusinesObjects in Regeln bereitzustellen. Das folgende Beispiel soll das Laden einer bekannten Bestellung innerhalb eines EventSupports "Anlegen" darstellen.
Beispiele
Die folgenden Beispiele zeigen die gängigsten Abfragemöglichkeiten. Detaillierte Ausführung über Methoden und Funktionen finden Sie in der API. Nuclos-API
Simple Abfragen
Im folgenden Beispiel wird eine Abfrage mit Such-Parameter für ein Feld ausgeführt.
BusinessObjectQuery<Bestellung> mainQuery = QueryProvider.create(Bestellung.class); mainQuery.where(Bestellung.Eknetto.Lt(10.0)) .and(Bestellung.Eknetto.Gt(5.0)); List<Bestellung> result = QueryProvider.execute(mainQuery);
Auch Abfragen, ob ein Wert überhaupt vorhanden ist oder nicht, sind möglich:
BusinessObjectQuery<Bestellung> mainQuery = QueryProvider.create(Bestellung.class); mainQuery.where(Bestellung.Eknetto.Lt(10.0)) .and(Bestellung.Eknetto.Gt(5.0)) .and(Bestellung.Nr.notNull()) .and(Bestellung.IstAbgeschlossen.IsNull) List<Bestellung> result = QueryProvider.execute(mainQuery);
Komplexe Abfrage mit SubQuery
Nuclos bietet die Möglichkeit innerhalb von EventSupport-Klassen SubQueries zu verwenden. Wichtig ist, dass zur Unterabfage das Verbindungsfeld (ForeignKey) von dem Element der inneren zur äußeren Abfrage angegeben wird.
Dazu ein Beispiel:
BusinessObjectQuery<Bestellung> mainQuery = QueryProvider.create(Bestellung.class); BusinessObjectQuery<Bestellungsposition> subQuery = QueryProvider.create(Bestellungsposition.class); mainQuery.where(Bestellung.Eknetto.Lt(10.0)) .exist(subQuery, Bestellungsposition.Bestellung); List<Bestellung> result = QueryProvider.execute(mainQuery);