preupdate audited java hibernate jpa java-ee

java - audited - @PreUpdate y @Prepersist en hibernate/JPA(usando sesión)



hibernate audited entity (1)

He golpeado un bloqueador que agrega una corrección a un proyecto existente. El problema principal es que me gustaría utilizar @Prepersist y @PreUpdate en el POJO para ocuparme del campo LastModified (insertar y actualizar) usando la implementación de hibernación de JPA con sesión.

¿Razon? : Ese cambio es necesario porque existe la necesidad de usar liquibase 1.9.5 y sé (dado que me he enfrentado a esto antes) que liquibase translate timestamp fied to datetime con current_timestamp por defecto, y eso es demasiado malo para la base de datos mysql.

Así que necesitaba una forma de tener este conjunto en el código en lugar de en la base de datos para poder cambiar el campo de la marca de tiempo a la fecha de forma segura. Entonces, liquibase está contento, estoy feliz.

Ahora parece que esos intérpretes no se han ejecutado, con poca búsqueda descubrí que es adecuado usar entityManager Eso está actualmente fuera de cuestión. Así que me gustaría saber si hay una manera SIMPLE de solucionar mi problema, lo que significa que tengo @Prepersist o @PreUpdate o incluso otra solución para establecer el lastModified campo lastModified aún utilizando la sesión


Ahora parece que esos intérpretes no se han ejecutado, con poca búsqueda descubrí que es adecuado usar entityManager.

Sí, las devoluciones de llamada JPA no funcionarán si está utilizando la API de Session .

Así que me gustaría saber si existe una forma SIMPLE de solucionar mi problema, lo que significa tener @PrePersist o @PreUpdate o incluso otra solución para establecer el último campo Modificado aún utilizando la sesión

Que yo sepa, no hay una forma sencilla (si estás usando Spring, quizás TENGAS que echar un vistazo a esta publicación ).

Mi sugerencia para una solución basada en Hibernate sería usar events (y una o más interfaces). Verifique Hibernate y la última fecha de modificación para ver un ejemplo.