不,当基础数据发生变化时,缓存不会扫描数据库,让您神奇地自我更新.未通过L2缓存的更改不会出现在其中.超时等等多长时间取决于您的提供商以及默认设置.看起来默认的ehcache.xml是2分钟.
如果您没有通过Hibernate API进行更改,则不会通知第二级缓存,并且不会显示更改.处理这种情况的常用方法是以编程方式从二级缓存中逐出相应的对象以强制刷新.该SessionFactory规定允许这样做的方法.从第19.3节.管理 文档的缓存:
对于二级缓存,定义了
SessionFactory用于驱逐实例,整个类,集合实例或整个集合角色的缓存状态的方法.Run Code Online (Sandbox Code Playgroud)sessionFactory.evict(Cat.class, catId); //evict a particular Cat sessionFactory.evict(Cat.class); //evict all Cats sessionFactory.evictCollection("Cat.kittens", catId); //evict a particular //collection of kittens sessionFactory.evictCollection("Cat.kittens"); //evict all kitten collections
| 归档时间: |
|
| 查看次数: |
12132 次 |
| 最近记录: |