hibernateSession.createQuery ("select foo où id = 1");
// Cette commande renvoie l'élément avec l'ID 1.
// [BREAK POINT STOP] ==> Je vais dans MySQL et je supprime cet élément manuellement.
// [CONTINUER DU POINT DE RUPTURE]
hibernateSession.createQuery ("sélectionnez foo où id = 1");
// Cette commande renvoie aussi l'élément avec l'identifiant 1! :-(
Il est la même chose avec hibernateSession.flush()/hibernateSession.clean()
Je pense que je ne l'utilise pas bien mon cache de mise en veille prolongée ...Hibernate - Même résultat après la mise à jour/sélectionner
Répondre
Certainement un problème de mise en cache. Utilisez-vous Essayez de fermer la session et d'en extraire une nouvelle en usine
La première requête aura chargé cet objet dans la session de mise en veille prolongée Votre suppression de la ligne dans la base de données n'a aucun impact, puisque vous êtes en utilisant la même session
er besoin de démarrer une nouvelle session ou evict l'objet de la session.
Essayez cette
Object o = hibernateSession.createQuery("select foo where id = 1").uniqueResult();
// [BREAK POINT STOP] ==> I go in MySQL and I delete this item manualy.
hibernateSession.evict(o);
hibernateSession.createQuery("select foo where id = 1");
Si cela fonctionne, alors vous êtes problème est avec le cache L1. Le cache L1 est TOUJOURS là, est associé à un objet Session donné et est indépendant du cache L2 dont parle toute la documentation du cache d'hibernation. Le but du cache L1 est de satisfaire à l'exigence selon laquelle si vous obtenez deux fois le même objet de base de données dans la même session, les deux références satisferont r1 == r2.
Fondamentalement, l'utilisation de la mise en veille prolongée lorsqu'il peut y avoir des modifications simultanées à la base de données n'est pas simple.
- 1. Hibernate: mise à jour à la somme de l'autre table
- 2. Hibernate - collection enfant Identifiant changé dans la mise à jour
- 3. Obtenir un résultat unique dans Hibernate
- 4. Mise en pool de connexion Hibernate/mysql
- 5. zend_config_ini cassé après la mise à niveau à zf 1.9
- 6. Hibernate saveOrUpdate() nullPointerException lancé à chaque seconde mise à jour
- 7. hibernate versioning qui publie une mise à jour sans raison
- 8. MySQL après insertion et après mise à jour déclencheur
- 9. cadres manquants après la mise à niveau Xcode 3.2
- 10. Problèmes MySQL après la mise à niveau vers Rails 2.3
- 11. stringWithContentsOfUrl défaillant après la mise à jour vers OS3.1
- 12. WPF style pour effectuer la traduction après mise à l'échelle
- 13. Asp.net detailsview - obtenir des données après la mise à jour
- 14. erreur après la mise à niveau du SDK Flex: « {attendu »
- 15. Problème de mise à disposition de l'iPhone après la mise à jour 3.0.1
- 16. Évitez la mise en cache après la mise à jour de l'image pour Paperclip
- 17. Perte de retour à la ligne après l'affectation du résultat grep à une variable shell
- 18. Erreur de mise à jour du schéma HIbernate
- 19. Mise à jour de l'archétype Spring/Hibernate dans Maven?
- 20. Mise à jour d'une classe après modification de son interface
- 21. Comment appeler une fonction après la fin de la mise à jour dans un panneau de mise à jour?
- 22. Hauteur du panneau de mise à jour restant la plus grande taille après la mise à jour
- 23. JPA/Hibernate entityManager.persist (..) fait que la collection de l'entité devient nulle même si elle est sauvegardée
- 24. Réglage de la mise au point après animation Div
- 25. Comment puis-je représenter une relation plusieurs à plusieurs avec la même table/entité dans Hibernate?
- 26. Hibernate L2 Mise en cache et relations many-to-many
- 27. GridView aucune colonne présente même après DataBind()
- 28. Images et mise en cache - même image après changement de nom
- 29. Mise à jour simultanée sur le même enregistrement
- 30. MySQL/SQL: Mise à jour avec sous-requête corrélée de la table mise à jour elle-même