我的印象是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