Erzwinge das mühsame Laden von ansonsten faulen geladenen Eigenschaften
Ich habe eine Hibernate-Objekt, das die Eigenschaften sind alle geladen faul. Die meisten dieser Eigenschaften sind andere Hibernate-Objekte oder PersistentSets.
Nun möchte ich Kraft Ruhezustand zu eifrig laden Sie diese Eigenschaften nur für eine Zeit.
Natürlich könnte ich das "touch" jede dieser Eigenschaften mit object.getSite().size()
aber vielleicht gibt es einen anderen Weg, um mein Ziel erreichen.
InformationsquelleAutor der Frage | 2010-10-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Dokumentation sagt es so:
Referenzen
InformationsquelleAutor der Antwort Pascal Thivent
Dies ist eine alte Frage, aber ich wollte auch darauf hinweisen, die statische Methode
Hibernate.initialize
.Beispiel:
Die Kinder sind jetzt initialisiert verwendet werden, auch nachdem die Sitzung geschlossen ist.
InformationsquelleAutor der Antwort stephen.hanson
Dozer funktioniert gut für diese Art der Sache - Sie können Fragen, Dozer Zuordnung des Objekts zu einer anderen Instanz der gleichen Klasse, und Dozer besuchen alle Objekte, die erreichbar von dem aktuellen Objekt.
Sehen diese Antwort auf eine ähnliche Frage und meine Antwort auf eine andere Frage im Zusammenhang mit für mehr details.
InformationsquelleAutor der Antwort matt b
Für mich funktioniert:
Statt:
InformationsquelleAutor der Antwort oomer
3 Wege
1.HQL mit left join Kinder
2.Von setFetchMode nach createCriteria
3.Hibernate.initialisieren
InformationsquelleAutor der Antwort user3073309
Dies ist langsam, weil es eine Schleife für jedes Element muss es initialisiert werden, aber es bekommt den job getan.
InformationsquelleAutor der Antwort Joshua Grippo
Entsprechend der hibernate docsSie sollten in der Lage sein zu deaktivieren lazy-Eigenschaft laden durch die Einstellung der
lazy
- Attribut auf Ihre Besondere Eigenschaft mappings:InformationsquelleAutor der Antwort dogbane