Versionen im Vergleich

Schlüssel

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

...

Erstellen einer Datenbankabfrage (Query)

 

MethodeBeispiel
create

Allgemein:

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.

Codeblock
boolean sortAscending = true;

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

queryAuftrag.where(Auftrag.Auftragsnr.notNull())
            .and(Auftrag.Bestellwert.Gt(BigDecimal.ZERO))
            .orderBy(Auftrag.Auftragsnr, sortAscending);

Folgende Bedingungen können verwendet werden:

  • eq(value): gleich
  • isNull(): ist ein Nullwert
  • neq(value): ungleich
  • notNull(): kein Nullwert

Und für Numerische Attribute:

  • Gt(value): größer als
  • Gte(value): Größer als oder gleich
  • Lt(value): kleiner als
  • Lte(value): kleiner als oder gleich

Weitere Informationen finden sich in folgenden Klassen (unter api.nuclos.de):

org.nuclos.api.businessobject.attribute.Attribute<T>

org.nuclos.api.businessobject.attribute.NumericAttribute<T>


Suchen von Einträgen mit einem bestimmten Status

Codeblock
Query<Bestellung> qry = QueryProvider.create(Bestellung.class);
  qry.where(Bestellung.NuclosStateId.eq(BestellungSM.State_60.getId()));

Welchen Status ein BusinessObject einnehmen kann, hängt von dem zugewiesenen Statusmodel ab. Dazu gibt es für jedes Statusmodel eine entsprechende Klasse, hier "BestellungSM", die alle Status als Konstanten beinhaltet.


execute

Diese Funktion führt eine Query aus und gibt eine typisierte Liste als Ergebnis zurück.

Codeblock
List<Auftrag> results = QueryProvider.execute(queryAuftrag);
for (Auftrag a :results) {
	BigDecimal bestellwert = a.getBestellwert();
}


...

Auslesen eines einzelnen Eintrages

MethodeBeispiel
getById

Mit Hilfe dieser Methode kann ein einzelnes BusinessObject anhand

des Typs und

der Id ausgelesen werden.

Codeblock
// die Variable 'auftrag' stellt ein BusinessObject des Typs 'Auftrag' dar und besitzt eine Referenz auf ein Kundenobjekt Kunde k = QueryProvider.getById(Kunde.class, auftrag.getKundeId());
import org.nuclos.api.exception.BusinessException;
public class UtilsNeu {
 
    public static void workAuftrag(Long id1, Long id2) throws BusinessException {
        Auftrag auftrag = Auftrag.get(id1);
         }
}



Suche anhand von Aktionen und Status

...