Ayuda Sincronizacion/Concurrencia BD desde Java

Hola a todos!

Tengo una pequeña duda de concepto y no sé muy bien por dónde tirar. El caso es que tengo una base de datos centralizada (MySQL) a la que podrán acceder varios usuarios a la vez. Quiero evitar que dos personas cojan los mismos datos de la BD a la vez e intenten modificarlos. Al primero que llegue le dejo los datos en modo lectura y escritura y al segundo (y al resto) solo de lectura. Cuando el primero termine de modificar, salvará los cambios y el resto podrán acceder de nuevo en escritura.

Cómo se puede hacer esto? cómo evito que los que lleguen "tarde" no puedan escribir?
PD: Estoy trabajando con JPA en una aplicación para escritorio (Swing).
Muchas graciass

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de benek

Lee acerca de 'locking

Lee acerca de 'locking strategies', 'optimistic locking', 'pessimistic locking' y niveles de aislamiento (isolation levels), son conceptos generales de las bases de datos para escenarios concurrentes.

JPA soporta estas características: https://weblogs.java.net/blog/caroljmcdonald/archive/2009/07/jpa_20_conc...

Saludos.