जेपीए में @Version
एनोटेशन काम कैसे करता है?जावा - जेपीए - @ वर्जन एनोटेशन
जेपीए ही डेटासंग्रह रिकॉर्ड करने के लिए समवर्ती संशोधनों का पता लगाने के लिए अपने संस्थाओं में एक संस्करण क्षेत्र का उपयोग करता:
मैं विभिन्न जवाब जिसका निकालने इस प्रकार है के रूप में पाया। जब जेपीए रनटाइम एक ही रिकॉर्ड को समवर्ती रूप से संशोधित करने के प्रयास का पता लगाता है, तो यह लेनदेन के लिए अंतिम अपवाद करने का प्रयास अपवाद करता है।
लेकिन मुझे अभी भी यह सुनिश्चित नहीं है कि यह कैसे काम करता है।
इसके अलावा निम्नलिखित लाइनों से के रूप में:
आप संस्करण क्षेत्रों अपरिवर्तनीय विचार करना चाहिए। फ़ील्ड मान को बदलने से अपरिभाषित परिणाम हैं।
क्या इसका मतलब यह है कि हमें अपना संस्करण फ़ील्ड final
के रूप में घोषित करना चाहिए?
सभी यह होता है चेक/हर अद्यतन क्वेरी में संस्करण को अद्यतन है: 'अद्यतन myentity सेट MyColumn = 'नया मान', संस्करण = संस्करण +1 कहां संस्करण = [old.version]'। अगर किसी ने रिकॉर्ड अपडेट किया है, तो 'old.version' अब डीबी में से किसी एक से मेल नहीं खाएगा और जहां क्लॉज अपडेट होने से रोकेगा। 'अपडेट की गई पंक्ति' '0' होगी, जो जेपीए यह निष्कर्ष निकालने के लिए पता लगा सकता है कि एक समवर्ती संशोधन हुआ। –