真正用到 4个字对计算机来说太抽象了,Google能搜到的关于懒加载原理的解释,只能到返回代理对象层面,返回PersistentSet,保存了session和owner,利用session去查。然后呢?什么时候去查??????是调get方法(很明显不是)还是toString,还是??????没解释了?为什么调用get方法时,如果不给其赋值,像这样user.getRoleSet();不会发出sql,如果Set<Role> roles = user.getRoleSet();这样则发出sql?
3 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
真正用到=在内存中开辟空间
比如:new
懒汉单例:
public class LazySingleton {
private static LazySingleton intance = null;
private LazySingleton(){}
public static synchronized LazySingleton getInstance()
{
if(intance == null)
{
intance = new LazySingleton();
}
return intance;
}
}
get时才new。
智慧大石
TA贡献1946条经验 获得超3个赞
就是调用 get 方法的时候,应为返回的是代理对象,调用的 get 并不是原始的 get 方法,而是包装过的。此时代理对象会在 seesion 中检查是否 get 获取的对象已经存在,如果不存在就会发起一条 sql 去查询。如果处理不当会引起 N+1 问题。
添加回答
举报
0/150
提交
取消