Ehcache始终返回null

时间:2016-03-17 15:25:00

标签: java spring hibernate ehcache

我使用Ehcache 2.6.8作为Spring Boot应用程序的一部分,作为Hibernate 4.3.11的二级缓存。我有一个JMX MBean,允许我检查缓存的内容(here if you are interested)。

首先,我使用CacheManager名称来获取缓存列表。这很好。我可以使用cacheManager.getEhcache(cacheName)返回缓存。然后我打电话给cache.getKeys()。这很好用,cacheName是“com.myapp.DomainObjectName”,密钥列为“com.myapp.DomainObjectName#1”,“com.myapp.DomainObjectName#2”等。

然后我尝试通过使用缓存本身告诉我的其中一个密钥调用cache.get("com.myapp.DomainObjectName#1")来访问其中一个对象。然而,结果始终为空。

为什么?为什么我找不到与密钥相关联的对象,就像之前的缓存本身所说的一样?

PS,可能不相关,但我正在使用JGroups在生产中分发缓存。但是,即使在我的笔记本电脑上,我也会看到相同的行为。

1 个答案:

答案 0 :(得分:0)

您可以找到密钥表明缓存中有内容。

通过阅读你的问题,你错误地将密钥解释为我相信String。 JMX向您显示的是密钥的toString(),因此使用String作为密钥不会返回任何内容。

您需要一种方法直接使用get(key)中的对象。