"चुनें ... अपडेट के लिए" हाइबरनेट में LockMode.UPGRADE जिसे आप सेट कर सकते हैं, उदाहरण के लिए, एक NamedQuery ।
लेकिन एप्लिकेशन/मैनुअल टेबल-रो लॉकिंग का उपयोग करने में कई कमियां हैं (विशेषकर जब डेटाबेस कनेक्शन आधे रास्ते में टूट जाता है) और आपकी अपडेट-प्रक्रिया इसके बिना कर सकती है:
- लेनदेन शुरू करें।
- अद्यतन तालिका सेट स्थिति ='लंबित', सर्वर_आईडी =1 जहां राज्य ='प्रगति में';
- लेनदेन करें
- तालिका में से चुनें जहां State='PENDING' और server_id=1;
- [प्रक्रिया रिकॉर्ड]
इसके काम करने के लिए प्रत्येक सर्वर के पास एक अद्वितीय संख्या होनी चाहिए, लेकिन यह कम त्रुटि-प्रवण होगा और आप डीबीएमएस को वह करने देंगे जो इसे अच्छा माना जाता है:अलगाव (देखें ACID )।