谁能帮我解释下Hibernate 一级缓存 二级缓存 以及查询缓存?

发布网友

我来回答

2个回答

热心网友

一级缓存为session级别的缓存,为hibernate内置缓存,你从数据库load或get数据的时候会先去一级缓存上找。如果找到,则不会从数据库中存,否则从数据库中取。一级缓存会在session关闭时自动清除。

二级缓存为SessionFactory级别的缓存,要使用第三方二级缓存组件,不同session可以共享二级缓存中的数据!

查询缓存就是hql或sql语句要相同,否则无法命中数据

热心网友

一级缓存就是内存中的缓存,查询速度快,二级缓存就相当于硬盘。查询缓存就是在缓存区域进行查询。追问纠正一下 一级缓存其实是CPU上的静态缓存 二级缓存才是内存上的是动态的 静态体积大价格昂贵 体积比6 :1 价格跟内存上的动态的4:1 显然 折中考虑提高内存大小比较划算 并且你说的二级缓存就相当于硬盘 这打错特错了 缓存是即存 掉电了就清空,硬盘是掉电式存储设备

追答不要搞混淆了,你问的是Hibernate的缓存机制,不是计算机的一级、二级缓存。
当然了,我说的是不全对,一级缓存与你说的一样

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com