什么是hibernate中的二级缓存?

时间:2010-05-13 08:50:47

标签: java hibernate orm second-level-cache

什么是hibernate中的二级缓存?

2 个答案:

答案 0 :(得分:34)

Hibernate带有三个不同的缓存:第一级,第二级和查询缓存。

第一级缓存是Hibernate Session,用于跟踪当前Session(或工作单元)期间的实体状态。这是一个事务级缓存。

二级缓存在各个Session之间共享实体状态。这是一个SessionFactory级缓存。

查询缓存用于缓存查询(及其参数)及其结果。

推荐读物

答案 1 :(得分:2)

默认情况下启用第一级缓存,并在会话范围内工作。二级缓存与第一级缓存不同,后者可在会话工厂范围内全局使用。 因此,在会话工厂范围中创建二级缓存,并且可以在使用该特定会话工厂创建的所有会话中使用。 这也意味着一旦会话工厂关闭,与之关联的所有缓存就会消失,缓存管理器也会关闭。 每当hibernate会话尝试加载实体时,它首先在第一级缓存中查找实体的缓存副本,如果第一级缓存中没有缓存实体,则查找第二级缓存以获取缓存实体。