मैं जेपीए सीख रहा हूं और @SequenceGenerator
एनोटेशन में भ्रम है।जावा - जेपीए - जेनरेटर - @ सिकेंस जेनरेटर
मेरी समझ के लिए, यह स्वचालित रूप से किसी इकाई के संख्यात्मक पहचान फ़ील्ड/गुणों के लिए मान निर्दिष्ट करता है।
प्रश्न 1। क्या यह अनुक्रम जनरेटर डाटाबेस के बढ़ते संख्यात्मक मूल्य उत्पन्न करने की क्षमता का उपयोग करता है या संख्या को स्वयं बनाता है?
प्रश्न 2। यदि जेपीए डेटाबेस ऑटो वृद्धि सुविधा का उपयोग करता है, तो क्या यह डेटास्टोर के साथ काम करेगा जिसमें ऑटो वृद्धि सुविधा नहीं है?
क्यू 3। यदि जेपीए अपने आप पर संख्यात्मक मूल्य उत्पन्न करता है, तो जेपीए कार्यान्वयन कैसे पता चलता है कि कौन सा मूल्य अगली उत्पन्न करेगा? क्या यह मानने के लिए पहले डेटाबेस से परामर्श करता है कि मूल्य (अंतिम + 1) उत्पन्न करने के लिए आखिर में कौन सा मूल्य संग्रहीत किया गया था?
क्यू 4। कृपया
sequenceName
और
allocationSize
@SequenceGenerator
एनोटेशन के गुणों पर कुछ प्रकाश डालें।
जेपीए प्रदाता (उदाहरण के लिए हाइबरनेट) आधार के रूप में अनुक्रम मान का उपयोग करेगा, और * आवंटित * इसे आवंटित आकार के साथ वास्तविक आईडी प्राप्त करने के लिए आकार देगा। तो यदि अगला सीईसी मूल्य 11 है और आवंटन आकार 20 है, तो अगली आईडी जेनरेट की जाएगी 220. आमतौर पर, आप बस अपनी आईडी को अनुक्रम मूल्य का पालन करना चाहते हैं, इसलिए आवंटन सेट = अनुक्रम के द्वारा वृद्धि सेट करें। यह भी देखें http://stackoverflow.com/questions/5346147/hibernate-oracle-sequence-produces-large-gap –
यह गैर-आईडी कॉलम के लिए काम नहीं करता है। –