Versionen im Vergleich

Schlüssel

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

...

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 einer Entitäteneinem Businessobjekt. Bei der Suche nach Einträgen muss deshalb die Entität 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 Entitäten Businessobjekten werden kann, ist die Angabe einer Entität 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.

...

MethodeBeschreibung
and
Codeblock
Query<T> and (Attribute element, Boolean ascending);

Mit Hilfe dieser and() - Methode lässt sich eine Mehrfachsortierung bei Abfragen realisieren. Die Reihenfolge der Angaben innerhalb der Query ergibt die Reihenfolge der Sortierung bei der Abfrage.

 

Codeblock
Query<T> and (SearchExpression elm);

Mit Hilfe dieser and() - Method lassen sich SearchExpressions miteinander verknüpfen. Der Rückgabewert ist die Query selbst, was eine Aneinanderreihung ermöglicht.

exist

Mit der Exist() - Methode lassen sich Unterabfragen einbinden.

Allgemein kann eine Subquery erstellt und eingebunden werden, deren ID als Fremdschlüssel in der äußeren Query vorhanden ist und so mit dieser verknüpft werden kann.

Codeblock
<P extends BusinessObject> Query<T> exist(Query<P> subQuery, Attribute element);

Weiterhin kann mit der Angabe des Vergleichsfeldes aus der Subquery angegeben werden, mit welchem Wert der Vergleich in der MainQuery stattfinden soll.

Codeblock
<P extends BusinessObject> Query<T> exist(Query<P> subQuery, ForeignKeyAttribute elementMainQuery,
            ForeignKeyAttribute elementSubQuery);

Die Subquery selbst muss nicht ausgeführt werden, sondern wird als Instanz der äußeren Query übergeben und dort ausgewertet.Sehen Sie dazu ein Beispiel: hier

orderBy
Codeblock
Query<T> orderBy(Attribute element, Boolean ascending);

Mit Hilfe der Order-Methode kann eine Sortierung vorgenommen werden. Als Parameter muss das Feld (nachdem sortiert werden soll) der Entität des Businessobjekts (auf das sich die Query bezieht) und eine Sortierreihenfolge angegeben werden.

where
Codeblock
Query<T> where (SearchExpression elm);

Mit Hilfe der where() - Methode kann eine Suchbedingung für die Query angegeben werden. Mit der Methode and() können diese noch erweitert werden.

...