Pessoal,
No lock pessimista, uma transacao atualizando um dado bloqueia este dado e só o libera apos a completa atualizacao.
No lock otimista, o dado nao é bloqueado, mas se outra transacao tentar atualizar o mesmo dado, ocorrerá um erro de violacao de concorrencia.
Estou certo nas colocacoes acima?
Mas, no caso do lock otimista, esse erro é explicito ou a segunda transacao que provocou o erro de violacao de concorrencia fica aguardando?
É que utilizei a estrategia abaixo nos POJOs - Tabelas que sofrem update durante a transacao e nao tenho certeza se tudo funcionará legalzinho em caso de concorrencia:
//Atributo utilizado para o versionamento e inserido no POJO (Plain Old Java Object)
@Version
@Column(name = “versao”)
private int versao;
Agradeço quem puder opinar.