Usando Envers(Hibernate) como herramienta de auditoria


Una de las primeras cosas que te piden en los proyectos empresariales es que puedas garantizar que exista una trazabilidad de cambios en las entidades (datos) con el objetivo de poder recuperar el estado de la base de datos en un momento dado con fines de seguridad, recuperacion de errores, etc.

Log con Envers Hibernate


Para implementar una solución de este tipo existen muchas herramientas incluso lo puedes  hacer manualmente pero si lo que necesitas es una solución que puedas configurar en menos de dos horas entonces Envers es un excelente candidato.


Asumo que estas usando Hibernate, por lo tanto para implementarlo en tu proyecto simplemente en tu módulo de negocio que es el que normalmente se conecta a la base de datos incluye la librería (hibérnate-envers.jar) y listooo!!! (Esta librería la puedes encontra aquí  https://www.jboss.org/envers/downloads)
Ahora si quieres auditar una entidad vas a la entidad y le pones la siguiente anotación, puedes ponerla despues de la anotación @Entity:

@Audited

Listo ya tienes tu aplicación configurada para una auditoría básica en las entidades que marcaste con la anotaci'on anterior!!!

Como funciona??

El funcionamiento es simple, a través del Api annotations de Java se marcan las entidades para ser auditadas, cuando Hibernate va a guardar alguna entidad que está siendo auditada(@Audited)( justo antes del commit), Envers entra en acción y guarda los datos de la nueva entidad  y la anterior( en el caso de actualizaciones).

Adicionalmente puedes configurar datos de la auditoría como: el esquema de base de datos en el que se guardarán las auditorías, el sufijo-prefijo de las tablas en las que se guardarán las auditorías, el nombre del campo que guardará las revisiones, etc.

Tareas adicionales

Adicionalmente debería elegir una estrategía de auditoría: Necesita que se guarde la revisión inicial solamente(más rápido en inserción)  o prefiere una aproximación con revisión inicial y revisión final(más rápido en búsquedas).


Pueden descargar la libreria aquí
Para aprender más de la herramienta lo pueeden hacer en el siguiente enlace:

Comentarios

Anónimo dijo…
Hola, te dejo un enlace bastante interesante que tambien habla sombre Envers
https://jrodriguezweb.wordpress.com/2013/10/29/hibernate-envers-ejemplo/

Saludos

Entradas populares