सटीक होने के लिए, आपका मतलब आशावादी लॉकिंग नहीं है, लेकिन आशावादी समरूपता (बिना लॉक के)। संस्करण के लिए टाइमस्टैम्प का उपयोग करना केवल विरासत डेटाबेस समर्थन के लिए है, क्योंकि एक आधुनिक डेटाबेस (कम से कम सैद्धांतिक रूप से) भंडारण की सटीकता से तेज़ी से काम कर सकता है एक टाइमस्टैम्प।
पूर्णांक संस्करण गुण का उपयोग करना बहुत आसान है:
- सम्मिलित करने पर:संस्करण को 1 पर सेट करें
- अपडेट और डिलीट पर:संस्करण को 1 से बढ़ाएं और "जहां [email protected] जोड़ें "प्रत्येक sql स्टेटमेंट के लिए। बदले गए रिकॉर्ड की संख्या लौटाएं। StaleObjectStateException को फेंक दें जब बदले गए रिकॉर्ड की संख्या अपेक्षा से भिन्न हो।
व्यक्तिगत रूप से, मैं एक गैर-विरासत स्थिति में एक ही डेटा लिखने वाले दो अलग-अलग एप्लिकेशन नहीं बनाऊंगा, क्योंकि इसका मतलब है कि व्यावसायिक तर्क को डुप्लिकेट करना होगा और दो अनुप्रयोगों में परिवर्तन लागू करना होगा, तब भी जब परिवर्तन केवल एक के लिए प्रासंगिक हो अनुप्रयोग।