tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
271
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DarthShader DarthShader ist offline Mitglied Platin
    Registriert seit
    May 2004
    Beiträge
    684
    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!
     

  2. #2
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Primitive Datentypen liest Hibernate direkt. Also alles was Strings, Integers usw. sind. Für Relationen werden die weiteren Entitäten per default lazy geladen, also erst dann wenn du das Objekt traversierst. Konfigurieren lässt sich das über den FetchType. Setzt du den auf EAGER, erzeugt Hibernate gleich einen Query mit einem Join und holt das referenzierte Objekt gleich mit.

    Gruß
    Ollie
     
    In theory, there is no difference between theory and practice. In practice, there is!

    www.olivergierke.de

  3. #3
    DarthShader DarthShader ist offline Mitglied Platin
    Registriert seit
    May 2004
    Beiträge
    684
    Hallo Oliver,

    vielen Dank für die Hilfe!
     

Ähnliche Themen

  1. Hibernate UserType nullSafeGet-Methode
    Von Foermchen82 im Forum Java
    Antworten: 0
    Letzter Beitrag: 16.10.08, 13:34
  2. Hibernate: Mapping-Annotations an Member anstatt an Getter-Methoden?
    Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 9
    Letzter Beitrag: 23.04.08, 15:26
  3. Antworten: 5
    Letzter Beitrag: 10.04.07, 21:40
  4. Antworten: 2
    Letzter Beitrag: 16.01.07, 23:33
  5. Wann welche Subdivision-Methode von Meshsmooth
    Von Jan-Frederik Stieler im Forum 3D Studio Max
    Antworten: 1
    Letzter Beitrag: 16.04.05, 11:44