我的印象是session.load()
加載緩存中的代理對象,而session.get()
總是碰到數據庫,但在觀看JavaBrains video後我感到困惑。休眠:在session.load的情況下急切和延遲加載vs session.get
根據這段視頻,當我們調用下面的get方法時,它會在內存中加載代理對象UserDetails
。
user = (UserDetails) session.get(UserDetails.class, 1);
的UserDetails
結構
雖然在註釋部分,一個傢伙說:
沒有代理用戶類,而不是代理對象 集合已創建。
現在有兩個問題在這裏。
1st:涉及session.load()和session.get()的取回策略和創建代理對象,這個問題已經由我回答。
第二種:在這種情況下,代理對象將爲UserDetails或收集創建(仍有待回答)。
感謝
是的,這正是我在評論中提到的。爲了測試您的情況,爲什麼不在代碼中嘗試'session.clear()'並分析結果? 清除二級緩存,請閱讀: https://dzone.com/articles/clearing-hibernate-second-leve –
@Rahul,的確你是對的,如果你能回答第二個問題「在這個問題代理對象將創建UserDetails或收集?「 – Gaurav