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

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

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

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

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

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

你可能感兴趣的文章
Objective-C实现EM算法(附完整源码)
查看>>
Objective-C实现EM算法(附完整源码)
查看>>
Objective-C实现entropy熵算法(附完整源码)
查看>>
Objective-C实现euclidean distance欧式距离算法(附完整源码)
查看>>
Objective-C实现Euclidean GCD欧几里得最大公约数算法(附完整源码)
查看>>
Objective-C实现euclideanDistance欧氏距离算法(附完整源码)
查看>>
Objective-C实现euler method欧拉法算法(附完整源码)
查看>>
Objective-C实现euler modified变形欧拉法算法(附完整源码)
查看>>
Objective-C实现eulerianPath欧拉路径算法(附完整源码)
查看>>
Objective-C实现Eulers TotientFunction欧拉函数算法(附完整源码)
查看>>
Objective-C实现eulers totient欧拉方程算法(附完整源码)
查看>>
Objective-C实现EulersTotient欧拉方程算法(附完整源码)
查看>>
Objective-C实现eval函数功能(附完整源码)
查看>>
Objective-C实现even_tree偶数树算法(附完整源码)
查看>>
Objective-C实现Exceeding words超词(差距是ascii码的距离) 算法(附完整源码)
查看>>
Objective-C实现exchange sort交换排序算法(附完整源码)
查看>>
Objective-C实现ExponentialSearch指数搜索算法(附完整源码)
查看>>
Objective-C实现extended euclidean algorithm扩展欧几里得算法(附完整源码)
查看>>
Objective-C实现ExtendedEuclidean扩展欧几里德GCD算法(附完整源码)
查看>>
Objective-C实现external sort外排序算法(附完整源码)
查看>>