hibernate中lazy與二級快取問題

bonepole發表於2008-08-26
語句
from User user left join fetch user.role role

User.hbm.xml設定了cache
Role.hbm.xml設定了cache
user.role的set也已設定了cache,還設定了lazy=true

這條語句第一次執行後被存放到查詢快取,返回List中的每個user對應的role屬性都是具體的物件。
這時user和role物件都被存放到了二級快取。

第二次查詢時被查詢快取命中,返回List中的每個User的role是lazy的代理的物件。

因為這時的session已被關閉,我在頁面中呼叫user.role.name時就出錯了。no session

我想問,from User user left join fetch user.role role,語句中user物件的role在第一次已被添充到二級快取,為什麼再一次查詢時,User的role代理物件,在二級快取中找不的呢。

相關文章