Simplemente use el bloqueo optimista con el manejo de errores adecuado. Debería proporcionarle el comportamiento requerido con una sobrecarga de rendimiento aceptable. Si está utilizando una capa ORM (como hibernación, etc.), debería ser muy fácil de hacer. De lo contrario, también puede administrar un bloqueo optimista en el lado de la aplicación, pero no es recomendable. Recomendaría un manejo confiable proporcionado por cualquier solución estable de orm. Dado que estamos en el tema de garantizar la consistencia de los datos, sería mejor asegurar el comportamiento transaccional también para todos los compromisos con los datos relacionados lógicamente.
PD: el bloqueo pesimista es otra opción, pero generalmente se evita debido a los cuellos de botella de rendimiento adicionales.
Algunos enlaces de referencia:
13. Transacciones y concurrencia
Control de concurrencia optimista basado en versiones en JPA / Hibernate
- ¿Por qué no se puede automatizar el desarrollo de software para que esencialmente podamos 'pedir' a una computadora que nos cree una solución a nuestro problema / creación?
- ¿En qué tipo de matemáticas debo desarrollar habilidades para convertirme en un mejor programador y desarrollador en HTML, CSS, Java, JS, C #, .NET, SQL y Ruby?
- ¿Cuál es el mejor libro para aprender Java y J2EE como estudiante de primer año obteniendo una Licenciatura en Ingeniería en informática?
- ¿Cómo es el desarrollo de software en SpaceX?
- ¿Está satisfecho con los estilos actuales de entrevistas de desarrollo de software? ¿Qué se podría hacer para evaluar correctamente?