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

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

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

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

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

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

你可能感兴趣的文章
Objective-C实现skew heap倾斜堆算法(附完整源码)
查看>>
Objective-C实现Skip List跳表算法(附完整源码)
查看>>
Objective-C实现slack message松弛消息算法(附完整源码)
查看>>
Objective-C实现SlopeOne算法(附完整源码)
查看>>
Objective-C实现slow sort慢排序算法(附完整源码)
查看>>
Objective-C实现smo算法(附完整源码)
查看>>
Objective-C实现strschr函数功能(附完整源码)
查看>>
Objective-C实现subset generation子集生成算法(附完整源码)
查看>>
Objective-C实现substring函数功能(附完整源码)
查看>>
Objective-C实现sum of geometric progression几何级数之和算法(附完整源码)
查看>>
Objective-C实现sum of subset子集总和算法(附完整源码)
查看>>
Objective-C实现SVM支持向量机算法(附完整源码)
查看>>
Objective-C实现sylvester西尔维斯特方程算法(附完整源码)
查看>>
Objective-C实现tabu search禁忌搜索算法(附完整源码)
查看>>
Objective-C实现tanh函数功能(附完整源码)
查看>>
Objective-C实现TCP Server 多线程同时连接多个客户端(附完整源码)
查看>>
Objective-C实现TCP拥塞控制(附完整源码)
查看>>
Objective-C实现Tenengrad梯度函数(附完整源码)
查看>>
Objective-C实现ternary search三元搜索算法(附完整源码)
查看>>
Objective-C实现TernarySearch三分查找算法(附完整源码)
查看>>