肤浅理解hibernate缓存
hibernate 二级缓存的如何配置在这里就不概述了,包括使用第三插件ehCache,osCache..
在这里我要讲的是关于应用缓存的时候遇到的一些问题。
get方法是不会走缓存的,会直接命中数据库,所以每次都会发sql
hibernate会根据这些ID 去二级缓存中取对应的数据
一个HQL查询 from User u where id < 50
返回结果有两条 ID 分别是5和10
那么查询缓存的就是5和10
但当这个对象(表)有了更新后 插入的新的数据(比如id=30)
原本的hql查询出来的结果 也就(也应该)有了变化 为5、10、30
而hibernate很难判断新插入或者更新数据 对HQL查询缓存的影响
正是因为这个原因 所以只要有更新 查询缓存都全部失效
所以我说 查询缓存不会出现"数据不同步"的问题
我之前跟帖 也都是围绕了这个在讲
不知仁兄对此有何疑义?
52 楼 lirong1978 2009-11-13 我都不知道缓存有什么用