2016-04-28 15 views
0

Bitte könnte jemand mir helfen, das Konzept zu verstehen - "Eager fetching mit Joins" in Hibernate mit einer einfachen Beispielabfrage und Tabelle mit dem Ergebnis der Abfrage. Ich habe das Netz durchsucht, konnte aber mit einem guten Beispiel keine Erklärung finden. Bitte helfen Sie mir und führen Sie mich.Eager holen mit Joins

Antwort

0

Eager-Abruf holt verknüpfte Tabellendaten sofort beim ersten Abruf des Objekts zurück, anstatt zu warten, bis es von der Anwendung explizit angefordert wird.

Aus einer SQL-Perspektive könnte es effizienter sein, vorausgesetzt, Sie möchten immer die eifrig abgerufenen Daten verwenden. Im Allgemeinen ist es oft besser zu warten, bis die Anwendung die Daten benötigt. An diesem Punkt führt Hibernate eine neue Abfrage zum Abrufen der Daten durch.

Es ist wirklich die gleiche Idee wie faul initialisieren Anwendung Konstrukte - nicht schaffen, diese Verbindung/Buchse/Öffnen eine Ressource/was auch immer, bis Sie es wirklich brauchen, wenn Sie sie brauchen.

Eager-Abruf kann auch sehr nicht skalierbar sein, wenn es sich um eine Parent-Child-Beziehung handelt, bei der das Kind 1000s/10000s/1000000s untergeordnete Objekte hat. Dies ist wahrscheinlich der Ort, an dem die meisten Probleme mit dem Winterschlaf auftreten, die Lösung besteht darin, Kinder manuell abzurufen - nicht so praktisch, aber Ihre Anwendung wird glücklich sein.

[Sorry, habe kein Beispiel in der Nähe, aber ich dachte, ich könnte es gut genug ohne erklären.]