Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Der QueryProvider stellt Möglichkeiten zur Verfügung, Daten aus dem Nuclos-System zu laden und in Form eines BusinessObjects oder Listen von BusinesObjects in Regeln bereitzustellen. Die folgende Liste zeigt den Funktionsumfang der Provider-Klasse und bietet Beispiele für deren Nutzung an.

 

Info

Ohne die Angabe des Feldes "NuclosLogicalDeleted" werden logisch gelöschte Einträge nicht berücksichtigt. Ebenso bei NuclosLogicalDeleted.eq(Boolean.FALSE). Nur wenn explizit NuclosLogicalDeleted.eq(Boolean.TRUE) in der Query verwendet wird, können gelöschte Einträge abgefragt werden.

Alle Einträge, die nicht logisch gelöscht wurden:

Codeblock
Query<Auftrag> qAuftrag = QueryProvider.create(Auftrag.class);
qAuftrag.where(Auftrag.NuclosLogicalDeleted.eq(Boolean.FALSE))

// oder einfach nur

Query<Auftrag> qAuftrag = QueryProvider.create(Auftrag.class);

Alle Einträge, die logisch gelöscht wurden:

Codeblock
Query<Auftrag> qAuftrag = QueryProvider.create(Auftrag.class);
qAuftrag.where(Auftrag.NuclosLogicalDeleted.eq(Boolean.TRUE))

Alle Einträge anzeigen:

Codeblock
 Query<Auftrag> qAuftrag = QueryProvider.create(Auftrag.class);
 qAuftrag.where(Auftrag.NuclosLogicalDeleted.eq(Boolean.TRUE).or(Auftrag.NuclosLogicalDeleted.eq(Boolean.FALSE)))

Funktionsumfang

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

Codeblock
public static <T extends BusinessObject> Query<T> create(Class<T> type) {
   return getService().createQuery(type);
}

Ein Beispiel finden Sie hier.

execute

Diese Methode führt eine typisierte Query auf der Datenbank aus. Da die Suchabfrage generell mehrere Ergebnisse zurückliefern kann, ist der Rückgabewert vom Typ List. Diese ist ebenfalls typisiert und bei keinem gefundenen Treffer leer, aber nicht null.

Codeblock
public static <T extends BusinessObject> List<T> execute(Query<T> query) {
   return getService().executeQuery(query);
}

Ein Beispiel finden Sie hier.

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.

Codeblock
public static <T extends BusinessObject> T getById(Class<T> type, Long id) {
   return getService().getById(type, id);
}

Ein Beispiel finden Sie hier.

getByProcess

Diese Methode ermöglicht die Suche nach Datenbankeinträgen, die einer bestimmten Aktion zugeschrieben sind. Jede Aktion in Nuclos gehört zu einem Businessobjekt. Bei der Suche nach Einträgen muss deshalb das Businessobjekt nicht extra angegeben werden. Zwingend erforderlich dagegen ist die Angabe mindestens einer Aktion.

Codeblock
public static <PK, T extends Stateful & BusinessObject<PK>> List<T> getByProcess(Process<T> process, Process<T>... additionalProcesses) throws BusinessException;

Ein Beispiel finden Sie hier.

getByState

Diese Methode ermöglicht die Suche nach Datenbankeinträgen, die einen bestimmten Status besitzen. Da ein Status immer einem Statusmodell angehört, das von mehreren Businessobjekten werden kann, ist die Angabe eine Businessobjekt notwendig. Weiterhin muss mindestens ein Status der Suche übergeben werden.

Codeblock
public static <PK, T extends Stateful & BusinessObject<PK>> List<T> getByState(Class<T> type, State state, State... additionalStates) throws BusinessException 

Ein Beispiel finden Sie hier.

...