DarthShader
Erfahrenes Mitglied
Hallo,
ich habe eine Frage zur Funktionsweise von Hibernate. Wenn ich ein Objekt aus der Datenbank hole, dann ist es ja laut Definition ein "attached" Objekt, welches im Hintergrund durch Hibernate mit einer Proxy-Klasse gemanaged wird.
Ist es demnach richtig, dass zunächst gar keine Daten aus der DB von dem Objekt geladen werden, sondern nur, wenn ich z.B. eine Getter-Methode des besagten Objektes verwende?
Beispiel: Ich hole ein Objekt mit der id "1" vom Typ "Auto" aus der Datenbank. Nun ist mein "Auto"-Objekt quasi noch leer. Erst wenn ich nun einen Aufruf der Art "Person besitzer = "auto.getBesitzer();" mache, holt Hibernate tatsächlich die Daten?
Wenn das richtig ist, wie verhält es sich mit "verschachtelten" Verweisen? Was ist z.B., wenn der obige Besitzer noch ein Verweis auf ein Adress-Objekt hat, welches auch in der DB liegt. Würde dann "auto.getBesitzer()" auch gleich die Adresse holen, oder erst der Aufruf an "auto.getBesitzer().getAdresse()"?
Sicherlich kann man das Verhalten irgendwie konfigurieren, was ist in dem Fall der Standard?
Über eine Antwort würde ich mich sehr freuen
Vielen Dank!
ich habe eine Frage zur Funktionsweise von Hibernate. Wenn ich ein Objekt aus der Datenbank hole, dann ist es ja laut Definition ein "attached" Objekt, welches im Hintergrund durch Hibernate mit einer Proxy-Klasse gemanaged wird.
Ist es demnach richtig, dass zunächst gar keine Daten aus der DB von dem Objekt geladen werden, sondern nur, wenn ich z.B. eine Getter-Methode des besagten Objektes verwende?
Beispiel: Ich hole ein Objekt mit der id "1" vom Typ "Auto" aus der Datenbank. Nun ist mein "Auto"-Objekt quasi noch leer. Erst wenn ich nun einen Aufruf der Art "Person besitzer = "auto.getBesitzer();" mache, holt Hibernate tatsächlich die Daten?
Wenn das richtig ist, wie verhält es sich mit "verschachtelten" Verweisen? Was ist z.B., wenn der obige Besitzer noch ein Verweis auf ein Adress-Objekt hat, welches auch in der DB liegt. Würde dann "auto.getBesitzer()" auch gleich die Adresse holen, oder erst der Aufruf an "auto.getBesitzer().getAdresse()"?
Sicherlich kann man das Verhalten irgendwie konfigurieren, was ist in dem Fall der Standard?
Über eine Antwort würde ich mich sehr freuen
Vielen Dank!