1
的類型轉換他們說在Hibernate Reference Documentation (21.1.3. Single-ended association proxies):休眠:代理
若選擇lazy =「無代理」,而不是默認爲lazy =「代理」,你 可以避免類型轉換帶來的問題。
你能解釋一下爲什麼嗎?
謝謝!
的類型轉換他們說在Hibernate Reference Documentation (21.1.3. Single-ended association proxies):休眠:代理
若選擇lazy =「無代理」,而不是默認爲lazy =「代理」,你 可以避免類型轉換帶來的問題。
你能解釋一下爲什麼嗎?
謝謝!
當lazy
是proxy
時,所討論的關聯字段用代理對象初始化。由於創建代理時不知道關聯對象的實際類型,因此該代理顯然不能被轉換爲它。
當lazy
是no-proxy
時,該字段未被初始化。相反,當您嘗試訪問該字段時,將攔截對該字段的訪問並加載實際對象。這個攔截需要字節碼工具。
謝謝!很好的答案。我只是想知道:在'lazy = no-proxy'的情況下,如果沒有代理,那麼在哪個Java對象中存儲關聯對象的id(在實際關聯對象被加載之前)? – rapt
@rapt:我想它存儲在一個包含關聯字段的對象中。在字節碼檢測期間可以添加一個額外的字段來存儲該ID。 – axtavt