Le verrouillage optimiste détecte les modifications concurrentes sans bloquer les lignes : un attribut @Version est incrémenté à chaque mise à jour, et une mise à jour fondée sur une version obsolète échoue (OptimisticLockException). L'application peut alors recharger les données et réessayer ou prévenir l'utilisateur.
Exemple
@Version
private long version;