2017-08-21 3 views
2

Ist es möglich, die nicht konstanten Felder oder Eigenschaften der aktuellen Klasse im Schlüssel der @CacheEvict Annotation zu verwenden? Zum Beispiel:Nicht konstante Eigenschaften oder Felder im Schlüssel für @CacheEvict verwenden

public class Feature { 

    private int id; 

    @Autowired 
    private FeaturesClient featuresClient; 

    @CacheEvict(value = CacheConfiguration.FEATURES, key = 
       "T(java.lang.String).valueOf(#userId).concat(T(java.lang.String)" + 
       ".valueOf(**#id**))") 
    public boolean isFeatureAvailable(long userId) { 
     return featuresClient.isFeatureAvailable(userId, id); 
    } 

} 

Antwort

1

Ja.

@CacheEvict(key = "#userId + #root.target.id") 

Documentation:

#root.method, #root.target und #root.caches für Verweise auf das Verfahren, Zielobjekt und betroffene Cache (s) ist.

+0

danke, @OrangeDog – rimsky90

+0

@ rimsky90 Wenn diese Antwort hilfreich war, klicken Sie auf den Pfeil nach oben und das Häkchen, um es zu akzeptieren. – OrangeDog

Verwandte Themen