Comment ajouter une fonctionnalité de cache dans Spring Data JPA CRUDRepository
Je veux ajouter "Cachable" annotation dans findOne méthode, et de supprimer le cache lors de la supprimer ou de produire des méthodes qui s'est passé.
Comment puis-je le faire ?
source d'informationauteur virsir
Vous devez vous connecter pour publier un commentaire.
virsir, il y a une façon de plus si vous utilisez Spring Data JPA (en utilisant seulement les interfaces). Voici ce que j'ai fait, genereic dao pour les mêmes entités structurées:
Je pense que fondamentalement @sept réponse est bonne, mais avec les 2 points manquants:
On ne peut pas définir une interface générique, j'ai peur que nous avons de déclarer chaque interface concrète séparément depuis l'annotation ne peut pas être héritée et nous avons besoin de cache différent des noms pour chaque référentiel.
save
etdelete
devrait êtreCachePut
etfindAll
devrait être à la foisCacheable
etCacheEvict
Référence
Essayer de fournir MyCRUDRepository (une interface et une implémentation), comme expliqué ici: L'ajout de comportement à tous les référentiels. Ensuite, vous pouvez remplacer et ajouter des annotations pour ces méthodes:
J'ai résolu le cela de la manière suivante et sa fonctionne bien