2009-05-25 8 views
0

Je veux enregistrer toutes les modifications dans ma base de données à des fins d'audit, en utilisant une table appelée AuditEvent qui stocke l'ID de ligne modifiée (clé primaire), nom de table, nom de colonne, valeur précédente, nouvelle valeur, horodatage, type d'opération (insérer/mettre à jour/supprimer) et le nom de l'utilisateur qui a effectué les modifications. J'utilise SQL Server 2005, mais je ne veux pas utiliser de déclencheurs, car puisque j'utilise un pool de connexions, il serait difficile de trouver l'utilisateur actuel.Comment implémenter un intercepteur d'audit en utilisant iBATIS?

La solution Hibernate basée sur un Interceptor est plutôt simple. Comment puis-je faire quelque chose de similaire en utilisant iBATIS/iBATOR?

Répondre

0

Si vous utilisez Spring, vous pouvez utiliser SqlMapClientDaoSupport pour écrire des objets Dao de modèle qui enveloppent l'audit avec le support de transaction que vous utilisez. Si ce n'est pas le cas, il existe une option de modèle iBatis Doa, iBatis DAO. Cela a été déprécié afin que vous puissiez être mieux avec le printemps.

+0

J'ai déjà des DAO générés par iBator, mais ils ne m'aident pas du tout, car ils ne fournissent pas d'installations orientées aspect, étant nécessaire pour tout coder manuellement. C'était ma solution, BTW: code personnalisé aux DAO, qui utilisent la réflexion pour trouver et enregistrer les attributs modifiés des objets insérés/mis à jour. – muriloq

+0

@muriloq aucune idée si cela est possible, mais vous pouvez regarder le support de Springs AOP. L'exemple de transaction pourrait être utile pour l'audit. – sal

Questions connexes