Zum Inhalt springen

getUid bei n:1 - Performanceproblem

Erstellt am 8. Juni 2017 · 1 Antwort · letzte Antwort am 16. Juni 2017

Tags: Extbase, TYPO3 6.x, Frage

Ei-Dotter ·

Hi,
ich habe ein interessantes Performanceproblem bei Extbase.

Angenommen ich habe 2 Tabellen: Bibliothek und Bücher.

Wenn ich jetzt FOREACH durch die Bücher mache, dann möchte ich gerne ich gerne die UID der Bibliothek wissen.

Jetzt habe ich ein Performanceproblem:

$query = $buchRepository->createQuery();
$buchs = $query->execute();
foreach ($buchs as $buch) {
    /** @var \Vendor\Extname\Domain\Model\Buch $buch */
    $uid = $buch->getBibliothek()->getUid();
}

In meiner mySQL-Tabelle gibt es in der Tabelle "buch" ja eine Spalte "bibliothek". In dieser Spalte steht die UID der Bibliothek. Bei dem foreach holt der aber das ganze Objekt Bibliothek. Ich will ja aber nur die UID.

Da ich da einige tausend Datensätze habe ist das an dieser Stelle extrem unperformant.

Ich will doch einfach nur die UID ohne das ganze Objekt laden zu müssen.

Hat da einer eine Idee?

getit ·

Hat dein Bibliothek-Objekt im Domänenmodell von Bücher die Annotation @lazy?

Wenn nein, würde ichs damit mal versuchen.