För att vara exakt, menar du inte optimistisk låsning, utan optimistisk samtidighet (utan lås). Att använda en tidsstämpel för version är bara för att stödja äldre databas, eftersom en modern databas (åtminstone teoretiskt) kan fungera snabbare än den är noggrann att lagra en tidsstämpel.
Att använda heltalsversionsegenskapen är mycket enkelt:
- Vid infogning:ställ in version 1
- Vid uppdatering och radering:öka versionen med 1 och lägg till "där [email protected] " till varje sql-sats. Returnera antalet ändrade poster. Kasta ett StaleObjectStateException när antalet ändrade poster är annorlunda än förväntat.
Personligen skulle jag inte skapa två separata applikationer som skriver samma data i en icke-legacy situation, eftersom det innebär att affärslogik måste dupliceras och ändringar måste tillämpas på två applikationer, även när ändringen är relevant för endast en av applikationerna.