CodamAIDocs
Themafertig

Blättern und Trefferzahl

Wie page, limit und meta zusammenspielen, warum limit: -1 alles liefert und woher totalCount kommt.

Ausprägungen
limit gesetztlimit -1 (alles)limit 0Seite hinter dem Endenegative Seitemetaabstraktes Modell

Worum es geht

Eine Tabelle zeigt nicht 10 000 Kunden auf einmal, sondern 25 pro Seite. Dafür gibt es zwei Angaben in parameter:

AngabeBedeutungStandard
limitwie viele Objekte höchstens auf eine Seite kommen-1 = alle
pagewelche Seite, gezählt ab 00

Seite page beginnt beim Treffer Nummer page × limit. Mit limit: 25 ist page: 0 die Treffer 1–25, page: 1 die Treffer 26–50.

Die Seitenleiste

flowchart LR
    subgraph T["totalCount = 60, limit = 25"]
        direction LR
        p0["page 0<br/>Treffer 1–25"]
        p1["page 1<br/>Treffer 26–50"]
        p2["page 2<br/>Treffer 51–60"]
    end
    p0 --> p1 --> p2

Die Zahl der Seiten rechnest du aus totalCount und limit: aufrunden von totalCount / limit. Bei 60 Treffern und limit 25 sind das 3 Seiten.

Was in meta steht

Zweite Seite mit zwei Objekten pro Seite
Anfrage
POST /api/rest/preset/query
{ "response": ["label"],
  "parameter": { "limit": 2, "page": 1,
                 "order": [{ "field": "amount", "order": "ASC" }] } }
Antwort
{
  "data": [ { "label": "Gamma" } ],
  "meta": {
    "error": false,
    "totalCount": 3,
    "currentPage": 1,
    "currentLimit": 2,
    "currentPageSize": 1
  }
}
FeldBedeutung
totalCountZahl aller Treffer über alle Seiten, nach allen Filtern
currentPagedie angefragte Seite
currentLimitdas angefragte limit
currentPageSizeHilfswert der Seitenberechnung. Für die Seitenleiste rechne die Seitenzahl selbst aus totalCount und limit.
errorbei einer erfolgreichen Suche immer false

totalCount berechnet CDMS mit einer eigenen Zählabfrage, bevor es die Seite liest. Die Zahl berücksichtigt dieselben Filter wie die Treffer, auch die unsichtbaren. Zwei Benutzer können also bei derselben Suche verschiedene totalCount sehen.

Alle Ausprägungen

page und limit in allen Formen

Wann: Tabelle mit Seiten.

"limit": 25, "page": 0 liefert die ersten 25, dazu totalCount für die Seitenleiste.

Ergebnis: Höchstens 25 Objekte.

Wann: Du brauchst wirklich alle, etwa für einen Export oder eine Auswahlliste mit wenigen Einträgen.

"limit": -1 oder limit weglassen. page spielt dann keine Rolle.

Ergebnis: Alle Treffer auf einmal.

Wann: Du willst nur wissen, wie viele Treffer es gibt.

"limit": 0 liefert keine Objekte, aber totalCount.

Ergebnis: data ist leer, totalCount stimmt.

Wann: "page": 5 bei nur 3 Treffern und limit 2.

Kein Fehler.

Ergebnis: data ist leer, totalCount stimmt.

Wann: "page": -1

CDMS liefert die erste Seite. In meta.currentPage steht der angefragte Wert.

Ergebnis: Wie page 0.

Wann: "meta": true (Standard) oder false.

Bei einer Suche auf einem normalen Modell kommt meta mit totalCount in beiden Fällen.

Ergebnis: totalCount ist immer da.

Wann: Suche über die Hub-API eines abstrakten Modells.

totalCount kommt aus der ersten Phase auf dem Obermodell, zusammen mit Filter, Sortierung und Seite. Siehe Abstrakte Modelle.

Ergebnis: Eine Zahl über alle Untertypen zusammen.

Fallen

Quellen im Code und in der Wissensdatenbank
  • CDMS/cdms-persistence-database – AbstractDatabasePersistence.queryObjects (count, Seite, Felder)
  • CDMS/cdms-commons – ListSearchParameter, QueryResponse
  • Probe gegen cdms-integrationtest (preset), 2026-09-21
Suchen