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