Seitenhistorie
...
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 einer Regel "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
Einfache Abfragen
Im folgenden Beispiel wird eine Abfrage mit Such-Parameter für ein Feld ausgeführt.
Codeblock |
---|
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:
Codeblock |
---|
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 Regeln 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:
...
Funktionsumfang
Methode | Beschreibung | ||
---|---|---|---|
create | Mit Hilfe dieser Methode kann ein typisiertes Query-Object angelegt werden, mit dessen Hilfe Datenbankabfragen ausgeführt werden können. Dabei wird auf eine abstrakte Query-Language zurückgegriffen. Abfragen mit SQL-Syntax sind nicht möglich. Die übergebene Klasse muss vom Typ BusinessObject sein. Das Query-Object als Rückgabewert ist ebenfalls typisiert und muss dem übergebenen BusinessObject entsprechen. Zum Ausführen der Query muss die unten beschriebene execute()-Methode verwendet werden.
| ||
execute | Diese Methode führt eine typisierte Query auf der Datenbank aus. Da die Suchabfrage generell mehrere Ergebnisse zurück liefern kann, ist der Rückgabewert vom Typ List. Diese ist ebenfalls typisiert und ist bei keinem gefundenen Treffer leer, aber nicht null.
| ||
getById | Diese Methode ermöglicht die Suche nach einem konkreten Datenbankeintrag. Dazu muss der Typ und die Id angegeben werden. Wird kein Element gefunden, ist der Rückgabewert null.
|