Dans mon application Grails, certaines de mes classes de domaine ne seront jamais modifiées par les utilisateurs.Comment désactiver temporairement la stratégie d'hibernation du cache de deuxième niveau en lecture seule dans Grails?
Cependant, certains travaux de maintenance sont parfois nécessaires, et l'administrateur devrait être capable de créer/éditer quelques instances de temps en temps (disons deux fois par an). Je souhaite définir une stratégie de cache de second niveau en lecture seule pour ces classes de domaine (static mapping = { cache usage: 'read-only' }
) ET je voudrais pouvoir "désactiver" (dans des situations très particulières) la stratégie de lecture seule afin de mettre à jour certaines instances via la vue d'édition de l'échafaudage Grails.
Est-ce possible? Que me conseillez-vous de faire?
EDIT: La solution que j'applique est un mélange de réponses Pascal et Burt (voir commentaires). Les deux réponses sont géniales et utiles. J'ai donc eu un dilemne pour choisir la réponse acceptée! En tout cas, merci.
Merci pour votre réponse. L'insertion de nouveaux objets fonctionnera mais lors de la mise à jour d'objets existants, je devrai "vider" le cache de 2ème niveau à droite? (parce que sinon les utilisateurs ne verront jamais le changement). Ai-je besoin d'utiliser la méthode expict() pour cela? – fabien7474
Oui, excellent point. Ajoutez "def sessionFactory" à votre service et appelez sessionFactory.evict (YourDomainClass) pour effacer le cache de deuxième niveau après une insertion. –