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

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

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

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

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

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

你可能感兴趣的文章
Objective-C实现找出三角形从上到下的最大路径算法(附完整源码)
查看>>
Objective-C实现找出买卖股票的最大利润算法(附完整源码)
查看>>
Objective-C实现找出买卖股票的最大利润算法(附完整源码)
查看>>
Objective-C实现找出二维数组中的鞍点(附完整源码)
查看>>
Objective-C实现找出由两个 3 位数字的乘积构成的最大回文数的算法 (附完整源码)
查看>>
Objective-C实现找出矩阵的最大最小值(附完整源码)
查看>>
Objective-C实现找到一个数字数组的中值算法(附完整源码)
查看>>
Objective-C实现找到具有 500 个除数的第一个三角形数算法(附完整源码)
查看>>
Objective-C实现找到最近的点对之间的距离算法(附完整源码)
查看>>
Objective-C实现抓包实例(附完整源码)
查看>>
Objective-C实现抽签抓阄(附完整源码)
查看>>
Objective-C实现抽象工厂模式(附完整源码)
查看>>
Objective-C实现拉格朗日插值法(附完整源码)
查看>>
Objective-C实现拉格朗日插值算法(附完整源码)
查看>>
Objective-C实现拓扑排序算法(附完整源码)
查看>>
Objective-C实现拦截输入法(附完整源码)
查看>>
Objective-C实现括号匹配(附完整源码)
查看>>
Objective-C实现拷贝二进制文件(附完整源码)
查看>>
Objective-C实现指定内存空间获取时间的函数(附完整源码)
查看>>
Objective-C实现指定点 x 处计算多项式 f(x) 并返回值算法(附完整源码)
查看>>