猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
Hibernate中的第一级和第二级缓存是什么?
任何人都可以用简单的话来解释Hibernate中的第一级和第二级缓存是什么?
德玛西亚99
浏览 520
回答 3
3回答
三国纷争
Streamline Logic博客上的第一级缓存有一个非常好的解释。基本上,第一级缓存在每个会话的基础上发生,因为第二级缓存可以在多个会话之间共享。
0
0
0
ITMISS
这里有一些hibernate缓存的基本解释......第一级缓存与“会话”对象相关联。缓存对象的范围是会话。会话关闭后,缓存的对象将永远消失。默认情况下启用一级缓存,您无法禁用它。当我们第一次查询实体时,它从数据库中检索并存储在与hibernate会话相关联的第一级缓存中。如果我们使用相同的会话对象再次查询同一个对象,它将从缓存加载,并且不会执行sql查询。可以使用evict()方法从会话中删除加载的实体。如果已使用evict()方法删除该实体,则下一次加载此实体将再次进行数据库调用。可以使用clear()方法删除整个会话缓存。它将删除存储在缓存中的所有实体。二级缓存与第一级缓存不同,后者可在会话工厂范围内全局使用。在会话工厂范围中创建二级缓存,并且可以在使用该特定会话工厂创建的所有会话中使用。这也意味着一旦会话工厂关闭,与之关联的所有缓存就会消失,缓存管理器也会关闭。每当hibernate会话尝试加载一个实体时,它首先在第一级缓存中寻找实体的缓存副本(与特定的hibernate会话相关联)。如果实体的缓存副本存在于第一级缓存中,则它将作为load方法的结果返回。如果第一级缓存中没有缓存实体,则查找第二级缓存以获取缓存实体。如果二级缓存具有缓存实体,则它将作为load方法的结果返回。但,在返回实体之前,它也存储在第一级缓存中,以便下一次调用实体的加载方法将从第一级缓存本身返回实体,并且不需要再次进入二级缓存。如果在第一级缓存和第二级缓存中也找不到实体,则执行数据库查询并将实体存储在两个缓存级别中,然后作为响应返回load() 方法。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
源码
spark分组排序提取前N个值
1 回答
请问转让门店小程序需要源码吗?门店小程序有自己的源代码吗?是否要注册计算机软件著作权才可以交易?
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续