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

हाइबरनेट, आईडी, ओरेकल, अनुक्रम

मेरे पास एक प्रोजेक्ट भी था जहां एक ओरेकल डीबी जो मेरी @Entity कक्षाओं को डेटा प्रदान करता है। जैसा कि आपने कहा, एक अनुक्रम एक ट्रिगर के माध्यम से तालिका के पीके के लिए आईडी उत्पन्न करता है। यह वह एनोटेशन था जिसका मैंने इनमें से किसी एक वर्ग में उपयोग किया था:

@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "G1")
@SequenceGenerator(name = "G1", sequenceName = "LOG_SEQ")
@Column(name = "ID", unique = true, nullable = false, precision = 22, scale = 0)
public int getId() {
    return this.id;
}

यह दूसरा सिंटैक्स है जिसे आपने अपनी पोस्ट में दिखाया है। जावा कोड में ट्रिगर को कोई कॉल नहीं है क्योंकि ट्रिगर को डीबी द्वारा प्रबंधित किया जाता है। मुझे याद है कि अगर मैं समस्या नहीं चाहता था तो मुझे डीबी में एक ही समय में अनुक्रम और ट्रिगर होना था। ट्रिगर ने पूछा कि क्या सम्मिलित करने के लिए पंक्ति की आईडी शून्य है या =0. इस मामले में अनुक्रम LOG_SEQ कहा जाता है।

इसलिए यदि आप अपनी इकाई के @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. OracleCommand SQL पैरामीटर्स बाइंडिंग

  2. भौतिक दृश्य - अंतिम ताज़ा की पहचान करना

  3. Oracle में तिथियां कैसे संग्रहीत की जाती हैं?

  4. Oracle SQL क्वेरी के साथ पहले संख्याओं के आधार पर कैसे छाँटें?

  5. Oracle SQL डेवलपर पर एक ही समय में 2 प्रश्न चलाएँ?