Ich versuche, @CacheEvict und @Cacheable Annotation auf einer einzigen Methode aufzurufen.Aufruf von @CacheEvict- und @Cacheable-Annotation auf einer einzigen Methode?
@CacheEvict(value = "tripDetailsDashboardCache", key = "#userId")
@Cacheable(value ="tripDetailsDashboardCache", key="#userId")
public List<DashBoardObject> getAllDetailsForDashBoard(Integer userId){
List<Master> masters = tripDetailsService.getTripDetailsForCaching(userId);
List<DashBoardObject> dashBoardObject = tripDetailsService.getMasterDetailsForDashBoard(userId, masters);
return dashBoardObject;
}
Auf Abruf von @CacheEvict, möchte ich die im Cache gespeicherten Daten für den speziellen Schlüssel löschen und wieder möchte ich die frischen Daten des Verfahrens Antwort zwischenzuspeichern. Aber es speichert nicht die frischen Daten? Und es gibt auch keinen Fehler?
Ich habe separate cachefähige und Cache-Evicted-Methoden erstellt. aber es funktioniert nicht so wie ich es brauchte. Voraussetzung ist, ich werde ein Ticket buchen, es wird in einer DB gespeichert werden, danach werde ich diese zwei Cache-Methoden aufrufen, als nächstes werde ich auf Dashboard-Taste klicken, in dieser Zeit sollte es Daten aus dem Cache nehmen, aber es dauert nicht. und kein Fehler. –
Ich möchte sowohl CacheEvict als auch Cacheable auf derselben Methode aufrufen. denn zuerst möchte ich die daten aus dem cache löschen und dann möchte ich die frischen daten laden. Ist es möglich, beide Annotationen auf dieselbe Weise aufzurufen? –
Die Einstellung "beforeInvocation = true" kann verwendet werden. aber es ist schwer vorherzusagen, wer gewinnt: CacheEvict oder Cacheable – Yura