发布网友
共2个回答
热心网友
一级缓存为session级别的缓存,为hibernate内置缓存,你从数据库load或get数据的时候会先去一级缓存上找。如果找到,则不会从数据库中存,否则从数据库中取。一级缓存会在session关闭时自动清除。
二级缓存为SessionFactory级别的缓存,要使用第三方二级缓存组件,不同session可以共享二级缓存中的数据!
查询缓存就是hql或sql语句要相同,否则无法命中数据
热心网友
一级缓存就是内存中的缓存,查询速度快,二级缓存就相当于硬盘。查询缓存就是在缓存区域进行查询。追问纠正一下 一级缓存其实是CPU上的静态缓存 二级缓存才是内存上的是动态的 静态体积大价格昂贵 体积比6 :1 价格跟内存上的动态的4:1 显然 折中考虑提高内存大小比较划算 并且你说的二级缓存就相当于硬盘 这打错特错了 缓存是即存 掉电了就清空,硬盘是掉电式存储设备
追答不要搞混淆了,你问的是Hibernate的缓存机制,不是计算机的一级、二级缓存。
当然了,我说的是不全对,一级缓存与你说的一样