pour le premier niveau de cache, ce que je comprends est quand nous faisons saveorupdate, nous avons besoin d'appeler flush() pour actualiser le cache afin de sélectionner ultérieurement requête de DB. Donc, pour une application utilisant Hibernate, nous ne doit pas modifier les enregistrements/supprimer des enregistrements en utilisant DB-GUI sans passer par Hibernate car le select demandera un mauvais résultat à cause du cache. correct?cache hibernate de premier niveau, modifier l'enregistrement directement à DB
Répondre
Incorrect. Le cache de 1er niveau est toujours cohérent avec lui-même et cohérent avec les mises à jour effectuées dans cette session. Lorsque la session est fermée, toutes les mises à jour restantes sont automatiquement vidées, vous devez très rarement appeler le flush()
. En outre, le cache de 1er niveau ne dure que pendant la durée de la session d'hibernation (qui ne dure généralement que quelques instructions SQL, et dure généralement moins d'une seconde), de sorte que toute mise à jour effectuée directement dans la base de données être reflété dans la prochaine session d'hibernation qui commence.
Si FlushMode est défini sur Auto, il doit être vidé avant d'effectuer toute requête HQL ou critère susceptible d'être affectée. Si vous effectuez des requêtes SQL (ou que vous effectuez des requêtes HQL et que FlushMode n'est pas automatique), vous devrez vider, sinon les modifications ne seront pas reflétées dans la base de données lors de l'exécution de la requête SQL.
En outre, si vous n'utilisez pas une transaction, vous devrez appeler flush avant de disposer de la session.
Check this out https://www.hibernate.org/hib_docs/v3/api/org/hibernate/FlushMode.html
- 1. comprendre le cache de premier niveau d'hibernation
- 2. Manipulation du cache de second niveau Hibernate
- 3. Grails/GORM, Désactiver premier niveau Cache
- 4. Cache de premier niveau entre différentes sessions?
- 5. Cache et associations de second niveau Hibernate
- 6. Hibernate Filtres briser le cache de second niveau
- 7. Hibernate cache de second niveau ne cache pas les entités validées
- 8. hibernate second niveau ehcache miss
- 9. Hibernate invalidation de cache de second niveau lorsqu'un autre processus modifie la base de données
- 10. Récupérer tous les Foo du cache de second niveau Hibernate sans cache de requête?
- 11. Que sauvegarde le cache Hibernate?
- 12. Hibernate désactiver cache de requêtes
- 13. Problème de mise à niveau dans Installshield 2008 Édition Premier
- 14. Hibernate - association de second niveau
- 15. HIbernate - HBM.xml Génération automatique à partir de DB Schema
- 16. Cache Jboss avec Hibernate
- 17. Videz le cache Hibernate à la demande
- 18. Hibernate cache de second niveau et ON DELETE CASCADE dans le schéma de base de données
- 19. Hibernate Interrogation stratégie d'expulsion de cache
- 20. Éviter le cache de premier niveau pour une entité dans NHibernate?
- 21. nhibernate: Pourquoi mon entité n'est-elle pas chargée dans le cache de premier niveau?
- 22. Contourner le cache Hibernate dans une transaction
- 23. addClass à des éléments de premier niveau uniquement
- 24. Cartographie même Chemin d'URL de premier niveau à différents modèles
- 25. Validation de niveau classe dans Seam/Hibernate
- 26. Comment puis-je obtenir que le premier niveau d'enfants dans Hibernate
- 27. afficher/masquer les divs de premier niveau avec jquery
- 28. NHibernate requête nommée et 2ème niveau cache
- 29. Le cache de second niveau Hibernate est-il invalide lors de l'exécution d'une instruction de mise à jour JPQL?
- 30. Oracle Requête hiérarchique: comment inclure le parent de premier niveau
Que diriez-vous pour le cache de niveau 2. Je suis sûr que si je modifie directement les enregistrements dans la base de données, l'application Hibernate sera toujours en train de retriver du cache sans le savoir? – cometta
Oui, cela peut être vrai pour le cache L2, mais votre question parlait du cache L1 (session). il est très important de distinguer les deux, les comportements sont très différents. – skaffman
Et 'CacheMode' est juste pour ça. –