Est-ce que le cache de niveau 2 Mise en veille prolongée invalidate lors de l'exécution d'une déclaration de mise à jour JPQL
-
19-09-2019 - |
Question
Lorsque vous exécutez une mise à jour de JPQL ou de supprimer la requête, est Hibernate assez intelligent pour invalider le cache de niveau 2 pour l'entité qui a changé?
Contrived exemple:
Vous avez le JPQL:
update Product p set p.status = 'S' where p.name like 'Monitor%'
Si vous avez actuellement des produits dans le cache de niveau 2 lorsque cette instruction est exécutée, cela signifie que Hibernate annule tous les produits à partir du cache ou est-il rien dans le cache et les produits dans le cache de niveau 2 sont désormais invalides?
Juste Pour votre information ... J'utilise JBoss 5.1 avec mise en veille prolongée et JBossCache
La solution
Après avoir exécuté mon propre test et en cours d'exécution à travers ce bug il semble qu'il annule le cache de second niveau, pas seulement le cache de second niveau pour toutes les entités impliquées dans la mise à jour.