【问题标题】:Hibernate + EhCache, keep missing the cacheHibernate + EhCache,不断丢失缓存
【发布时间】:2010-11-20 07:55:46
【问题描述】:

我已经将我的一些对象配置为可缓存(在映射文件上),并且从我可以看到的这个特定对象的缓存不工作得那么好。

对于其他对象,我看到每次迭代的命中计数都在增加,但未命中计数为 0,而对于这个对象,我看到它在会话中每次都未命中。

Elements in Memory: 8305 
Elements on Disk: 0 
Hit Count: 24915 
Missed Count 8305 
Put Count: 8305

我正在寻找一些可能是错误的指针。

  • 作为背景,我检查了 equals 和 hashCode 实现,甚至调试似乎都返回了正确的结果。
  • 此特定对象用于其他对象的集合以及顶级对象。

【问题讨论】:

标签: hibernate caching ehcache


【解决方案1】:

这些统计数据肯定表明您正确地访问了缓存。

如果您通过 ID 获取对象,Hibernate 将大致遵循以下步骤:

  1. 检入一级缓存(Session 对象)
  2. 检查二级缓存,未命中
  3. 从数据库中加载对象
  4. 下次放入二级缓存

对于没有注册未命中的其他对象,最可能的解释是您没有通过它们的 ID 访问它们,而是使用了无法直接缓存访问的查询或某种关联。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多