博客
关于我
Hibernate的一级缓存、二级缓存和查询缓存。
阅读量:413 次
发布时间:2019-03-06

本文共 488 字,大约阅读时间需要 1 分钟。

Hibernate的Session提供了一级缓存功能,默认情况下缓存一直有效。当应用程序处理持久化实体的保存或修改时,Session并不会立即将这些改变提交到数据库,而是将其缓存到当前Session中。只有在显式调用flush()方法或Session关闭时,才会将缓存的内容提交到数据库。这种一级缓存机制能够减少与数据库的交互,提升数据库访问性能。

SessionFactory级别的二级缓存是全局性的,所有Session都可以共享这个二级缓存。默认情况下,二级缓存是关闭的,需要手动开启并指定所使用的二级缓存实现类(可选使用第三方提供的实现)。一旦开启二级缓存并指定需要使用缓存的实体类,SessionFactory会缓存访问过的实体对象,除非缓存空间超出限制。这种缓存机制适用于需要频繁访问相同实体对象的情况。

需要注意的是,一级缓存和二级缓存都针对整个实体进行缓存,通常不会包含普通属性。如果需要对普通属性进行缓存,可以使用查询缓存。查询缓存则是将HQL或SQL语句及其查询结果作为键值对缓存,这样可以避免重复查询数据库,提升性能。查询缓存默认也是关闭的,需要手动开启。

转载地址:http://jzakz.baihongyu.com/

你可能感兴趣的文章
python变量的详细教程_Python零基础入门教程之语法入门[变量](第二期)
查看>>
Python变量命名方法-ChatGPT4o作答
查看>>
Python变量与运算符
查看>>
Python变量/运算符/函数/模块/string
查看>>
python发送邮件的时候出现 error (535, b‘5.7.3 Authentication unsuccessful‘) 解决方法
查看>>
python系列【仅供参考】:python flask框架 debug功能
查看>>
python发送notes邮件_使用python在Lotus Notes中发送邮件
查看>>
Python双版本下创建一个Scrapy(西瓜皮)项目
查看>>
Python双版本下No module named 'requests'
查看>>
python及pycharm2018软件安装教程
查看>>
python去重txt文本_Python实现的txt文件去重功能示例
查看>>
python去掉列表的逗号,从Python列表项中删除标点符号
查看>>
Python卸载所有包
查看>>
python单线程下实现多个socket并发
查看>>
Python单元测试框架介绍(超详细~)
查看>>
Python单元测试框架
查看>>
python单元测试之unittest
查看>>
Python单元测试unittest实战
查看>>
Python单元测试-模拟VS补丁
查看>>
python协程实时输出_Python 协程以及事件循环的问题,怎么知道 IO 读取结束了呢?...
查看>>