Sto usando l'annotazione spring
e @Cacheable
per memorizzare alcune voci del database. Voglio invalidare periodicamente la cache completa.Invalidate le voci @Cachable per annotazione sull'interfaccia?
Pertanto: è giusto mettere queste annotazioni su un metodo di interfaccia? O queste annotazioni devono essere posizionate sui metodi di classe (anche se hanno un corpo del metodo vuoto)?
public interface MyRepository extends CrudRepository<MyEntity, Long> {
@Override
@Cacheable("cache")
Airline findOne(long id);
@CacheEvict(value = "cache", allEntries = true)
@Scheduled(cron = "0 0 1 * * *")
void removeAll();
}
L'applicazione si avvia con successo se ho la @Cacheable
sul metodo di interfaccia e il @CacheEvict
in un servizio. Non funziona se uso il codice sopra. Ma forse sto facendo anche le cose sbagliate?