Java 在Spring EL中使用数组的内容
我正在使用Spring的缓存功能。调用以下方法时,我希望退出数组中所有值的缓存Java 在Spring EL中使用数组的内容,java,spring,spring-el,spring-cache,Java,Spring,Spring El,Spring Cache,我正在使用Spring的缓存功能。调用以下方法时,我希望退出数组中所有值的缓存receiptObject.resolverIds: @Override @Caching(evict = { @CacheEvict(value = "assignedFeedbacks", key = "#receiptObject.resolverIds[0]"), @CacheEvict(value = "newFeedbacks", key = "#receiptObject.
receiptObject.resolverIds
:
@Override
@Caching(evict = {
@CacheEvict(value = "assignedFeedbacks", key = "#receiptObject.resolverIds[0]"),
@CacheEvict(value = "newFeedbacks", key = "#receiptObject.feedbackObject.serviceId") })
public void addReceipt(ReceiptObject receiptObject) throws Exception {
feedbackDao.insertReceipt(receiptObject);
}
这里我只使用了第一个元素,但我想将其推广到数组中的所有元素。我该怎么做呢?我猜您在某处有一个
@Cacheable
方法,如下所示:
@Cacheable(value = "assignedFeedbacks")
public void getReceipt(Object receiptId) throws Exception {
由于@Caching
注释一次只能处理单个缓存条目,因此没有理由看一看SpEL如何处理数组,因为键应该是单个对象
我看到的唯一方法是基于直接缓存抽象用法:
@Autowired
private CacheManager cacheManager;
public void addReceipt(ReceiptObject receiptObject) throws Exception {
feedbackDao.insertReceipt(receiptObject);
Cache cache = cacheManager.getCache("assignedFeedbacks");
for (Object receiptId: receiptObject.getResolverIds()) {
cache.evict(receiptId);
}
}