Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Bloqueio otimista de hibernação. como funciona?


Para ser preciso, você não quer dizer bloqueio otimista, mas sim simultaneidade otimista (sem bloqueio). Usar um carimbo de data e hora para a versão é apenas para suporte a banco de dados legado, porque um banco de dados moderno pode (pelo menos teoricamente) funcionar mais rápido do que a precisão de armazenamento um carimbo de data/hora.

Usar a propriedade de versão inteira é muito simples:
  • Na inserção:defina a versão como 1
  • Na atualização e exclusão:aumente a versão com 1 e acrescente "onde [email protected] " para cada instrução sql. Retorne o número de registros alterados. Lance um StaleObjectStateException quando o número de registros alterados for diferente do esperado.

Pessoalmente, eu não criaria dois aplicativos separados gravando os mesmos dados em uma situação não legada, porque isso significa que a lógica de negócios deve ser duplicada e as alterações devem ser aplicadas a dois aplicativos, também quando a alteração é relevante para apenas um dos as aplicações.