Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 5 Nächste Version anzeigen »

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 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.

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 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:

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);
  • Keine Stichwörter