ये एनोटेशन दो अनुक्रम नहीं बना रहे हैं, केवल एक। क्या यह सही/अपेक्षित है?
यही अपेक्षित व्यवहार है। @GeneratedValue(strategy = GenerationType.AUTO)
. का उपयोग करते समय , जेपीए प्रदाता विशेष डेटाबेस के लिए एक उपयुक्त रणनीति चुनेगा। Oracle के मामले में, यह SEQUENCE होगा और चूंकि आपने कुछ भी निर्दिष्ट नहीं किया है, हाइबरनेट hibernate_sequence
नामक एकल वैश्विक अनुक्रम का उपयोग करेगा .
क्या यह सही है? खैर, मुझे नहीं पता, यह आपकी जरूरतों पर निर्भर करता है। बस के मामले में, Oracle अनुक्रम के लिए डिफ़ॉल्ट अधिकतम मान 1E+27, या 1,000,000,000,000,000,000,000,000,000 है। बहुतों के लिए इतना काफी है।
अब, GenerationType.AUTO
. का उपयोग करना संभव है और तब भी अनुक्रम के नाम को नियंत्रित करते हैं जब डेटाबेस अनुक्रमों का उपयोग करता है:
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="my_entity_seq_gen")
@SequenceGenerator(name="my_entity_seq_gen", sequenceName="MY_ENTITY_SEQ")
private Long id;