Ich hatte den Eindruck, dass session.load()
lädt das Proxy-Objekt in den Cache, während session.get()
immer trifft die Datenbank, aber ich bin verwirrt nach dem Betrachten eines JavaBrains video.Hibernate: Eager und Lazy Laden im Falle von session.load vs session.get
Laut diesem Video, wenn wir die unten get Methode aufrufen, lädt es das Proxy-Objekt von UserDetails
in den Speicher.
user = (UserDetails) session.get(UserDetails.class, 1);
Struktur UserDetails
ist
Während im Kommentarbereich, ein Mann und sagte:
eskein Proxy von Benutzerklasse ist, anstatt das Proxy-Objekt der Sammlung wird erstellt.
Jetzt gibt es zwei Fragen hier.
1st: Bezogen auf Abrufen von Strategien und Erstellen von Proxy-Objekten im Falle von session.load() und session.get(), die unten von mir beantwortet wurden.
2.: In diesem Fall erstellt das Proxy-Objekt für UserDetails oder für die Sammlung (noch zu beantworten).
Dank
Ja, genau das habe ich auch im Kommentar erwähnt. Für Ihren Fall zu testen, warum versuchen Sie nicht 'session.clear()' in Ihrem Code und analysieren Ergebnisse? Zum Löschen von Second-Level-Cache, lesen Sie hier: https://dzone.com/articles/clearing-hibernate-second-leve –
@Rahul, in der Tat hatten Sie Recht, und wenn Sie die zweite Frage beantworten können "In dieser Frage Proxy Objekt wird für UserDetails oder für die Sammlung erstellen? " – Gaurav