查看缓存的命中和未命中

时间:2014-09-10 15:58:27

标签: java hibernate caching

我正在使用启用了二级缓存的Hibernate和ehcache。我将@Cacheable放在我的用户实体上,如下所示:

@Cacheable
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, region = "usersCache")
public class User extends AbstractEntity {

...


}

但是当我启用Hibernate的sql日志记录时,我仍然看到我的`select *来自用户userdd =?"查询...我想也许这是正常的行为,缓存进程对Hibernate来说是透明的,只是查询然后ehcache拦截并从缓存中获取数据...所以如何查看查询是否是命中还是错过?

1 个答案:

答案 0 :(得分:1)

您可以启用Hibernate statistics generation设置hibernate.generate_statistics property to true。然后,您可以通过SessionFactory.getStatistics()监控缓存命中/未命中计数。

SessionFactory.getStatistics().getSecondLevelCacheStatistics()

提供此信息。

也可以通过JConsole查看,请参阅this