# Nachladen mit Hibernate und Spring



## IWantToBelieve (16. Jun 2014)

Hallo,

ich bin gerade dabei mir eine Webanwendung mit Spring und Hibernate zu bauen. Habe jetzt aber noch eine Frage, wie ich das Auslesen der Daten aus der Datenbank am schlausten anstelle. Als Beispiel folgendes:

Ich habe eine Tabelle "User", diese besitzt mehrere Fremdschlüsselbeziehungen, z.B. zu der Tabelle "Company" (Jeder User gehört einer Compay an). Wenn der Benutzer sich sein Profil anzeigen lässt, soll dort der Name der Firma aus der Tabelle "Company" stehen und nicht nur der Fremdschlüssel. Das bekomme ich hin, indem ich als Annotation "FetchType.EAGER" angebe, dann wird der Komplette Benutzer mit alles Referenzen geladen. Das möchte ich aber nicht grundsätzlich, sondern nur, wenn er sich sein Profil anzeigen lässt. In allen anderen Fällen reichen mir die Informationen, die direkt in der Tabelle User stehen, wie Vorname und Nachname. Mit "FetchType.LAZY" wird nur der User an sich geladen, das spart DB-Abfragen und die Menge der zurückgelieferten Daten ist wesentlich geringer.

Wie bekomme ich es jetzt hin, das ich einmal nur den User, ohne die Fremschlüsselbeziehungen aufzulösen, bekomme und dann aber auch den User mit den Fremschlüsselbeziehungen?
Wenn ich in der JSP meiner Anwendung auf einen Wert aus der Fremdschlüsseltabelle (z.B. Name der Firma) zugreife, dann werden diese Informationen nicht automatisch nachgeladen.

Könnt ihr mir hier weiterhelfen? Dafür wäre ich euch echt dankbar.


----------



## stg (17. Jun 2014)

Setze bei Bedarf einen join-fetch ab, wie zB hier beschrieben:

JPA Join Fetching


----------



## Steven Hachel (28. Mai 2016)

Benutzte mal EclipseLink. Dieses Framework lädt die Daten nach Bedarf dynmaisch nach. Das Defaultattribut für das FetchType ist standardmäßig LAZY.
http://www.empulse.de/2014/08/08/eclipselink-bessere-hibernate/
https://jaxenter.de/eclipselink-als-persistenzframework-fuer-osgi-enterprise-anwendungen-23743

viele Grüße
Steven


----------

