Wie verwende ich den Schlüssel in einer Bedingung in Cacheable annotation

Ich speichere die Ergebnisse einer Funktion mit der Anmerkung @cacheable. Ich habe 3 verschiedene Caches und der Schlüssel für jeden ist die Benutzer-ID des aktuell angemeldeten Benutzers, verknüpft mit einem Argument in der Methode. Bei einem bestimmten Ereignis möchte ich alle Cache-Einträge entfernen, deren Schlüssel mit dieser bestimmten Benutzer-ID beginnt. Zum Beispiel

@Cacheable(value = "testCache1", key = "'abcdef'")

Ich möchte, dass die Annotation für den Cache-Evict wie folgt aussieht:

@CacheEvict(value = "getSimilarVendors", condition = "key.startsWith('abc')")

Aber wenn ich versuche, dies zu implementieren, erhalte ich einen Fehler:

Property or field 'key' cannot be found on object of type'org.springframework.cache.interceptor.CacheExpressionRootObject' - maybe not      public?

Was ist der richtige Weg, um dies zu implementieren?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage