Om precies te zijn, je bedoelt niet optimistische vergrendeling, maar optimistische gelijktijdigheid (zonder een slot). Het gebruik van een tijdstempel voor versie is alleen voor ondersteuning van legacy databases, omdat een moderne database (althans theoretisch) sneller kan werken dan de nauwkeurigheid van het opslaan een tijdstempel.
Het gebruik van de integer version-eigenschap is heel eenvoudig:
- Bij invoegen:versie instellen op 1
- Bij updaten en verwijderen:verhoog versie met 1 en voeg "waar [email protected] " aan elke sql-instructie. Retourneer het aantal gewijzigde records. Geef een StaleObjectStateException wanneer het aantal gewijzigde records anders is dan verwacht.
Persoonlijk zou ik in een niet-legacy situatie geen twee afzonderlijke applicaties maken die dezelfde gegevens schrijven, omdat dat betekent dat bedrijfslogica moet worden gedupliceerd en wijzigingen moeten worden toegepast op twee applicaties, ook als de wijziging slechts voor één van de de toepassingen.