I understand that using Spring's (3.1) built in CacheManager using the EhCache implementation, there are certain limitations when in proxy mode (the default) as per this post:

[Spring 3.1 @Cacheable - method still executed](https://stackoverflow.com/questions/10343885/spring-3-1-cacheable-method-still-executed/10347208#10347208)

Consider the scenario I have:

```
@CacheEvict(value = "tacos", key = "#tacoId", beforeInvocation = true)
removeTaco(String tacoId) {
    // Code to remove taco
}

removeTacos(Set<String> tacoIds) {
    for (String tacoId : tacoIds) {
        removeTaco(tacoId); 
    }
}

```

In this repository method, calling removeTacos(tacoIds) will not actually Evict anything from the Cache because of the limitation described above. My workaround, is that on a service layer above, if I wanted to delete multiple tacos, I'd be looping through each taco Id and passing it into removeTaco(), and never using removeTacos()

However, I'm wondering if there's another way to accomplish this.

1) Is there an SpEL expression that I could pass into the key that would tell EhCache to expire every id in the Set?

```
e.g.  @CacheEvict(value = "tacos", key = "#ids.?[*]") // I know this isn't valid, just can't find the expression.

```

Or is there a way I can have removeTacos() call removeTaco and actually expire the Cached objects?