Mysql
 sql >> Database >  >> RDS >> Mysql

Ibernazione del blocco ottimistico... come funziona?

Per essere precisi, non intendi il blocco ottimistico, ma la concorrenza ottimistica (senza blocco). L'utilizzo di un timestamp per la versione è solo per il supporto del database legacy, perché un database moderno può (almeno teoricamente) funzionare più velocemente della sua precisione di archiviazione un timestamp.

L'uso della proprietà della versione intera è molto semplice:

  • In inserimento:imposta la versione su 1
  • Su aggiornamento ed eliminazione:aumentare la versione con 1 e aggiungere "where [email protected] " a ogni istruzione sql. Restituisce il numero di record modificati. Genera un'eccezione StaleObjectStateException quando il numero di record modificati è diverso dal previsto.

Personalmente, non creerei due applicazioni separate scrivendo gli stessi dati in una situazione non legacy, perché ciò significa che la logica aziendale deve essere duplicata e le modifiche devono essere applicate a due applicazioni, anche quando la modifica è rilevante solo per una delle le applicazioni.