2015-12-22 1 views
0

J'ai compris que le cache L2 ne peut pas se mettre à jour si une mise à jour se produit dans le magasin persistant. Alors, devrais-je appeler la méthode evict2ndLevelCache() après toutes les méthodes d'écriture ou de mise à jour à la couche DAO? Ou il y a une meilleure stratégie?Hibernate: Invalidation du cache de second niveau

http://howtodoinjava.com/2013/07/02/how-hibernate-second-level-cache-works/

Si un utilisateur ou un processus directement les modifications dans la base de données, la il n'y a aucun moyen que cache de second niveau se mettre à jour jusqu'à ce que « timeToLiveSeconds » durée est passé pour cette région de cache. Dans ce cas , il est judicieux d'invalider le cache entier et de laisser reconstituer son cache une fois de plus. Vous pouvez utiliser l'extrait de code ci-dessous pour invalider tout le cache de second niveau d'hibernation entière.

+0

Possible duplication de [invalidation de cache de deuxième niveau Hibernate lorsqu'un autre processus modifie la base de données] (http://stackoverflow.com/questions/1603846/hibernate-2nd-level-cache-invalidation-whenanother-process-modifies- the-databas) – Tarik

+0

Salut, le lien fournit également une méthode d'expulsion d'échantillon. J'étais inquiet pour son utilisation? Ai-je raison de comprendre que chaque méthode de mise à jour est suivie d'un appel à la méthode d'expulsion? – Forkmohit

Répondre

1

Si vous faites des changements dans les entités Hibernate elles-mêmes, vous n'avez rien d'autre à faire pour assurer la cohérence du cache L2, Hibernate s'en chargera. Si vous effectuez des modifications via des requêtes natives, indiquez explicitement quelles entités sont affectées, sinon Hibernate invalidera l'intégralité du cache de second niveau, comme expliqué here. Si vous modifiez des données dans la base de données à partir d'un autre processus, Hibernate n'en a pas conscience et vous devrez définir la stratégie qui correspond le mieux à vos besoins (politiques d'expiration, invalidation explicite de l'extérieur de l'application). , etc).