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

हाइबरनेट ओरेकल टेबलस्पेस एनोटेशन

नहीं, इसे बॉक्स से बाहर करने का कोई तरीका नहीं है। मैंने अतीत में निम्नलिखित - बल्कि शामिल - दृष्टिकोण का उपयोग करके इसके आसपास पाया है:

  1. अपना खुद का एनोटेशन बनाएं, @TableSpec जिसमें टेबलस्पेस और अन्य आवश्यक विशेषताएं हैं।
  2. विस्तार करें org.hibernate.cfg.Configuration और ओवरराइड करें getTableMappings() सजाए गए Table return को वापस करने के लिए ऑब्जेक्ट्स (नीचे देखें)।
  3. विस्तार करें org.hibernate.mapping.Table और ओवरराइड करें sqlCreateString() और / या sqlAlterStrings() टेबलस्पेस विनिर्देश (और अतिरिक्त सेटिंग्स यदि कोई हो) जोड़ने के लिए।
  4. hbm2ddl टूल (या चींटी कार्य) का उपयोग करने के बजाय अपना खुद का लिखें जो आपका Configuration बनाएगा ऑब्जेक्ट, अपने @TableSpec . को इकट्ठा करने और व्याख्या करने के लिए अपनी सभी क्लास फाइलों को प्रोसेस करें एनोटेशन और इनवाइट करें Configuration.generateSchemaCreationScript() या generateSchemaUpdateScript() वास्तविक डीडीएल उत्पन्न करने के लिए।

जैसा कि मैंने कहा, बल्कि शामिल :-) एक विकल्प के रूप में, यदि आपके सभी मैप किए गए टेबल एक ही टेबलस्पेस का उपयोग करते हैं, तो आप ओरेकल बोली का विस्तार कर सकते हैं जिसका आप उपयोग कर रहे हैं और ओवरराइड कर सकते हैं getTableTypeString() अपने टेबलस्पेस स्पेक को वापस करने के लिए। हालांकि यह एक बदसूरत हैक है (क्योंकि टेबल टाइपस्ट्रिंग का मूल उद्देश्य MySQL इंजन प्रकार प्रदान करना है), यह काम करता है और निश्चित रूप से उपरोक्त दृष्टिकोण से बहुत तेज़ और आसान है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql-vb.net से अधिकतम मूल्य प्राप्त करना

  2. ऑरैकल ट्रिगर में एक exe फ़ाइल चलाएँ

  3. एक SQL क्वेरी कैसे लिखें जो इनपुट तालिका से कई पंक्तियों को आउटपुट तालिका में एक पंक्ति में जोड़ती है

  4. NHibernate Oracle - DLL 'OraOps10w.dll' लोड करने में असमर्थ

  5. मैं Oracle में एक तैयार स्टेटमेंट के लिए एक ArrayList को कैसे बाँधूँ?