从ehCache中删除其键以'xyz'开头的值

时间:2015-09-11 11:47:24

标签: spring caching ehcache

我有一个要求,我必须从特定缓存中删除一个密钥,该密钥以某个值开头,例如xyz

实际密钥可以是xyz12345xyzehrekxyz5eei7等。 我使用Spring注释从特定缓存中删除一个值。我不想从缓存中删除所有内容,只删除以xyz开头的密钥对象。

@CacheEvict(value="someCache", key="#keyStartsWith")
public void removeValueFromCache(String keyStartsWith) {

}

我试图在密钥中传递"^#keyStartsWith"。但它不起作用。

1 个答案:

答案 0 :(得分:0)

我知道这样做的一种hackish方式。

首先,在您将代码存储到缓存中的代码中,创建一个专门存储密钥的arraylist。

ArrayList<String> keys

现在,当你想要删除匹配说&#34; xyz&#34;的密钥时,你可以做的是

for (String key : keys)
    if (key.contains("xyz")
        cache.remove(key);

希望这有帮助!