За да бъдем точни, нямате предвид оптимистично заключване, а оптимистичен едновременност (без заключване). Използването на времева марка за версия е само за поддръжка на наследена база данни, тъй като съвременната база данни може (поне теоретично) да работи по-бързо от нейната точност на съхранение клеймо за време.
Използването на свойството целочислена версия е много просто:
- При вмъкване:задайте версия на 1
- При актуализиране и изтриване:увеличете версията с 1 и добавете "където example.com@sqld " към всеки оператор на sql. Върнете броя на променените записи. Хвърлете StaleObjectStateException, когато броят на променените записи е различен от очаквания.
Лично аз не бих създал две отделни приложения, записващи едни и същи данни в ненаследена ситуация, защото това означава, че бизнес логиката трябва да се дублира и промените трябва да се прилагат към две приложения, също и когато промяната е от значение само за едно от приложенията.