hibernate中lazy与二级缓存问题
语句
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代理对象,在二级缓存中找不的呢。