Hibernate面试题部分汇总集合(2)

发布时间:2021-06-06

此文档主要简绍J2EE中的hibernate面试突击问题部分集合

件。SessionFactory的外置缓存也被称为Hibernate的第二级缓存。事务范围的缓存是持久化层的第一级缓存;进程范围和集群范围的缓存是持久化层的第二级缓存。Hibernate还为查询结果提供了一个查询缓存,它依赖于二级缓存。

持久化层可以提供多种范围的缓存。如果在事务范围的缓存中没有查到相应

的数据,还可以到进程范围或集群范围的缓存内查询,如果还是没有查到,那么只有到数据库中查询。事务范围的缓存是持久化层的第一级缓存,通常它是必需的;进程范围或集群范围的缓存是持久化层的第二级缓存,通常是可选的。

什么样的数据适合放到二级缓存中?

1)很少被修改的数据;

2)不是很重要的数据;

3)不会被并发访问的数据;

4)参考数据。

不适合放到二级缓存中的数据?

1)经常被修改的数据;

2)绝对重要的数据,例如:财务数据;

3)共享数据。

其它:

· 处于一级缓存中的对象永远不会过期,除非应用程序显式清空缓存或者清除 特定的对象 必须提供数据

过期策略;

· 只要应用程序通过Session接口执行保存、更新、删除、加载和查询数据库数据的操作,Hibernate就会启用第一级缓存,把数据库中的数据以对象的形式拷贝到缓存中,对于批量更新和批量删除操作,如果不希望启用第一级缓存,可以绕过Hibernate API,直接通过JDBC API来执行指操作。 用户可以在单个类或类的单个集合的粒度上配置第二级缓存。如果类的实例被经常读但很少被修 改,就可以考虑使用第二级缓存。只有为某个类或集合配置了第二级缓存,Hibernate在运行时才会把它的实例加入到第二级缓存中。

我的理解:

Hibernate中的一级缓存是出于Hibernate自身的需要而进行的一次数据缓

存,可以在Hibernate中的一般操作中起到数据缓存的作用。而通常所说的缓存 技术,实际上对应的就是Hibernate中的二级缓存,只不过在Hibernate中,已经有了Session级别的一级缓存,所以称之为二级缓存。

缓存的管理:

一级缓存的管理

精彩图片

热门精选

大家正在看