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

Spring 从ehCache中删除键以';开头的值;xyz';,spring,caching,ehcache,Spring,Caching,Ehcache,我需要从特定缓存中删除一个以某个值开始的密钥,例如xyz @CacheEvict(value="someCache", key="#keyStartsWith") public void removeValueFromCache(String keyStartsWith) { } 实际密钥可以是xyz12345,xyzehrek,xyz5eei7,等等。 我正在使用Spring注释从特定缓存中删除一个值。我不想从缓存中删除所有内容,只想删除键以xyz开头的对象 @CacheEvict(val

我需要从特定缓存中删除一个以某个值开始的密钥,例如
xyz

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

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

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

}

我试图通过键中的“”传递键开始。但它不起作用。

我知道一种黑客的方法

首先,在将元素存储到缓存中的代码中,创建一个arraylist以独占方式存储密钥

ArrayList<String> keys

希望这有帮助

我知道这样做的方法

首先,在将元素存储到缓存中的代码中,创建一个arraylist以独占方式存储密钥

ArrayList<String> keys

希望这有帮助

您是否尝试过使用@cacheexecute的condition属性?您能提供有关它的更多详细信息吗?如果可能有帮助,请尝试此操作。。。试了很多。但它也有局限性。除了像下面阿披舍克建议的那样以旧的方式实现它之外,别无选择。您是否尝试过使用@cacheexecute的condition属性?您能提供更多详细信息吗?如果有帮助,请尝试一下这个方法。。。试了很多。但它也有局限性。没有别的选择,只能像下面阿披实所建议的那样,以旧的方式实施。谢谢阿披实。这个解决办法一直在我的脑海里,但是如果我没有选择的话,我会认为这是最后的选择。这个解决办法一直在我的脑海里,但是如果我没有选择的话,我会认为这是最后的选择。