admin管理员组文章数量:1530865
2024年3月11日发(作者:)
hibernate 缓存面试题
Hibernate缓存面试题
一、什么是Hibernate缓存?
Hibernate缓存是一种用于提高性能的机制,它可以减少对数据库的
访问次数。Hibernate缓存分为一级缓存(Session缓存)和二级缓存
(SessionFactory缓存)两种。
二、一级缓存和二级缓存有什么区别?
1. 一级缓存:
- 是与Session绑定的缓存,它存储了在当前Session中查询的实
体对象。
- 一级缓存的范围是Session级别,当Session关闭时,缓存也将
被清除。
- 一级缓存通过Session的get()和load()方法进行更新和清除。
2. 二级缓存:
- 是与SessionFactory绑定的缓存,它存储了在整个应用程序中被
多个Session共享的实体对象。
- 二级缓存的范围是应用程序级别,当应用程序关闭时,缓存也将
被清除。
- 二级缓存通过配置文件指定,如或者
ties。
三、如何配置二级缓存?
配置Hibernate的二级缓存需要以下步骤:
1. 在中启用二级缓存:
```
name="_second_level_cache">true
```
2. 配置二级缓存的提供者:
```
name="y_class">e.E hCacheRegionFactory
```
3. 针对需要缓存的实体类进行配置:
```
```
四、常见的缓存策略有哪些?
1. 读写(read-write)缓存策略:
- 当实体对象被查询时,将其放入缓存中。
- 当实体对象被更新时,将缓存中的对象清除,并更新数据库中的
对象。
2. 只读(read-only)缓存策略:
- 当实体对象被查询时,将其放入缓存中。
- 当实体对象被更新时,会抛出异常,因为只读缓存策略下不允许
更新操作。
3. 非严格读写(nonstrict-read-write)缓存策略:
- 当实体对象被查询时,将其放入缓存中。
- 当实体对象被更新时,将更新缓存中的对象,但不会立即更新数
据库中的对象。
4. 事务(transactional)缓存策略:
- 当实体对象被查询时,将其放入缓存中。
- 在事务提交时,会将缓存中的对象更新到数据库中。
五、如何避免Hibernate缓存带来的问题?
版权声明:本文标题:hibernate 缓存面试题 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1710114621a248996.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论