J'enregistre un historique de toutes les modifications apportées à certaines entités et suis sur le point de mettre en œuvre un mécanisme similaire à Envers pour prendre soin de cela automatiquement. Ma question est de savoir si utiliser Hibernate interceptors or their event system?Intercepteurs Hibernate ou événements pour piste d'audit?
Il me semble que les intercepteurs sont un peu plus simples et font tout ce dont j'ai besoin. Et la propre documentation d'Hibernate suggère d'utiliser des intercepteurs pour "suivre les informations d'audit". Mais leurs informations d'audit ne sont pas dans une table d'accompagnement pour chaque entité et Envers utilise le système d'événements que j'imagine pour une raison. J'utilise Spring 3.0 et Hibernate 3.5 (dernières écuries).
MISE À JOUR: déclencheurs de base de données ne sont pas souhaitables pour cette situation. Je suis impatient d'entendre des réflexions sur les intercepteurs d'hibernation par rapport aux événements pour les pistes de vérification/les historiques de changement.
déclencheurs de base de données serait mon approche préférée à ce sujet. Plus simple que d'utiliser les intercepteurs d'Hibernate. – skaffman
DB déclencheurs ne sont pas si facile avec mon application. J'ai besoin d'enregistrer des informations supplémentaires dans chaque entrée d'audit, y compris la modification qui a été rétablie, la modification sur laquelle chaque changement était basé, etc. et un mécanisme en cascade qui gère cela pour les collections. –
@skaffman: les triggers déplacent la logique dans la couche de base de données. L'utilisation d'un ORM, entre autres, nous aide à garder la logique là où elle appartient, dans la couche application. – cherouvim