Datenbank-Ladeoperation

Syntax

$objects.preload(
    attributes: [...], 
    fun: list -> ...
)

Beschreibung

Lädt die angegebenen Attribute einer gegebenen Menge von Objekten mit einem optimierten Bulk-Ladevorgang aus der Datenbank und hält die Werte solange im Cache, bis die gegebene Funktion ausgewertet wurde.

Parameter

Name Typ Beschreibung Pflicht Default
objects Menge von Fachobjekten Die Objekte, deren Attribute geladen werden sollen. ja -
attributes Menge von Attributen und Referenzen Attribute, die auf allen übergebenen Objekten geladen werden sollen. ja -
fun Funktion Funktion die auf der Eingangsmenge nach der Ladeoperation ausgewertet wird. ja -

Rückgabewert

Es wird der Wert zurückgegeben, der von der übergebenen Funktion berechnet wird.

Erklärung

Wenn bei einer Funktionsauswertung der Wert eines Objektes abgefragt wird, kann es sein, dass der zugehörige Wert noch nicht aus der Datenbank geladen ist. In diesem Fall wird der Wert beim Zugriff geladen. Wenn eine Operation auf vielen Objekten ausgeführt wird, kann das dazu führen, dass eine Vielzahl von Datenbankzugriffen stattfindet, welche die Auswertung ausbremsen. Mit der Preload-Operation kann man dafür sorgen, dass die Ladeoperation optimiert auf einer großen Menge von Objekten im Vorfeld stattfindet, so dass die Funktionsauswertung dann schnell auf den zwischengespeicherten Werten stattfinden kann.