Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ऑरैकल पर हाइबरनेट अनुक्रम, @GeneratedValue(strategy =GenerationType.AUTO)

<ब्लॉकक्वॉट>

ये एनोटेशन दो अनुक्रम नहीं बना रहे हैं, केवल एक। क्या यह सही/अपेक्षित है?

यही अपेक्षित व्यवहार है। @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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Async I/O गहन कोड गैर-async की तुलना में धीमा चल रहा है, क्यों?

  2. SQL क्वेरी में Oracle सहयोगी सरणी का उपयोग कैसे करें

  3. मैन्युअल रूप से डीबी अपडेट के बाद हाइबरनेट द्वितीय स्तर कैश साफ़ करें

  4. Oracle में तिथियों से अग्रणी शून्य कैसे निकालें?

  5. Oracle में दूसरा सबसे न्यूनतम मान चुनें