estamos utilizando hibernate con bloqueo optimista. Todas nuestras entidades tienen la anotación @version.mejor estrategia de actualización en hibernación stalestateException
Esto funciona bien, si un usuario intenta salvar un objeto que está obsoleto obtenemos una excepción de estado estable. En nuestro caso, nos gustaría dar al usuario una pantalla de notificación para descartar sus cambios o sobrescribir los valores actuales en la base de datos.
Este es un caso de uso común para excepciones de estados obsoletos. Mi pregunta está relacionada con este caso de uso. ¿Cuál es la mejor estrategia si el usuario decide sobreescribir la fila de la base de datos actual con sus cambios? He revisado la guía de referencia de Hibernate y diferentes sitios web, pero todo lo que se menciona aquí es el hecho de que tiene que captar usted mismo la excepción stalestateexperience y luego gestionar de forma programática la sobrescritura de los datos. Me pregunto si hibernate tiene algunas utilidades para simplificar esta estrategia, lo más simple que puedo hacer si el usuario decide sobreescribir sus datos es recuperar la última versión de la entidad de la base de datos y luego copiar todos los campos modificados a este objeto y luego guardando el objeto cambiado nuevamente en la base de datos. Pero no puedo dejar de preguntarme si no hay una solución más elegante.
En algunas ocasiones, efectivamente creamos un 'merge ui'. Pero hay algunos casos de uso en los que los datos no son lo suficientemente importantes como para sobrescribirlos, me preguntaba si hay algún método predeterminado para esto o si solo tiene que escribir el algoritmo usted mismo. –
No es que yo sepa que tengo miedo. –
Sin embargo, es una buena pregunta. ¡He pasado bastante tiempo pensando en la mejor forma de enfrentar esta situación! –