2010-07-27 11 views
8

मैं निम्न ब्लॉग को हाइबरनेट आशावादी लॉकिंग के बारे में पढ़ रहा था। मैं इसे हाइबरनेट के साथ उपयोग करने की योजना बना रहा हूं। लेकिन, मुझे एक चिंता है। हमारे पास जावा कोड और सी ++ कोड है, दोनों एक डेटाबेस से कनेक्ट हैं। हालांकि, जावा कोड आशावादी लॉकिंग प्राप्त करने के लिए हाइबरनेट का उपयोग कर सकता है, मैं सी ++ कोड एक ही काम करना चाहता हूं। इसके अलावा, सी ++ कोड कुछ विरासत कोड का उपयोग कर रहा है।हाइबरनेट आशावादी लॉकिंग .. यह कैसे काम करता है?

http://turgaykivrak.wordpress.com/2009/05/16/72/

वहाँ एक दस्तावेज़ बताते हैं कि कैसे हाइबरनेट आशावादी लॉकिंग को प्राप्त होता है?

किसी भी सुझाव की सराहना की जाती है।

धन्यवाद
बाला

उत्तर

11

सटीक होना, आप आशावादी लॉकिंग, लेकिन आशावादी संगामिति (एक ताला के बिना) मतलब यह नहीं है। संस्करण के लिए टाइमस्टैम्प का उपयोग केवल विरासत डेटाबेस समर्थन के लिए है, क्योंकि एक आधुनिक डेटाबेस (कम से कम सैद्धांतिक रूप से) टाइमस्टैम्प संग्रहीत करने की सटीकता से तेज़ी से काम कर सकता है। 1 के साथ वृद्धि संस्करण और हर एसक्यूएल को संलग्न "जहां संस्करण = @ संस्करण":

पूर्णांक संस्करण संपत्ति का उपयोग करना बहुत सरल है:

  • डालने पर: सेट संस्करण 1 के लिए
  • अद्यतन पर और हटाना statementent। बदले गए रिकॉर्ड्स की संख्या वापस करें। एक StaleObjectStateException फेंको जब बदले गए रिकॉर्ड की संख्या अपेक्षा से अलग है।

व्यक्तिगत रूप से, मैं दो अलग-अलग आवेदन पत्र एक गैर विरासत स्थिति में एक ही डेटा लिख ​​नहीं बनाता क्योंकि इसका मतलब है कि व्यापार तर्क दोहराया जाना है और परिवर्तन जब परिवर्तन दो आवेदन करने के लिए लागू किया जाना है, यह भी है कि केवल एक आवेदन के लिए प्रासंगिक है।

+0

धन्यवाद @Paco। क्या मैं mysql में पूर्णांक के बजाय एक बड़ा उपयोग कर सकता हूं। – Boolean

+1

यह MySQL के लिए सही है, जो सवाल है, लेकिन यदि आप SQL सर्वर का उपयोग कर रहे हैं तो टाइमस्टैम्प को प्राथमिकता दी जाती है। यह भी देखें http://ayende.com/Blog/archive/2009/04/15/nhibernate-mapping-concurrency.aspx। –

+0

मुझे mysql के साथ संयुक्त NHibernate संस्करण प्रॉपर्टी के साथ अनुभव नहीं है। मुझे लगता है कि आप संस्करण संपत्ति मैपिंग में लंबे समय तक टाइप निर्दिष्ट करके एक जावा तक mysql bigint मैप कर सकते हैं। – Paco

संबंधित मुद्दे