2013-06-09 12 views
11

में स्कीमा जेनरेट करें मैंने बिना समस्या के ड्रॉपविज़ार्ड और हाइबरनेट के ट्यूटोरियल का पालन किया। अब मेरी संस्थाओं में मेरी छोटी सी टिप्पणियां नहीं हैं, और मैं अपने लिए टेबल बनाने और उस तरह की चीजें उत्पन्न करने के लिए हाइबरनेट करना चाहता हूं। तो, मैं हाइबरनेट की कॉन्फ़िगरेशन कैसे बदल सकता हूं? क्या मैं इसे hibernate.cfg.xml दे सकता हूं? अगर मैं कर सकता हूं, तो क्या मुझे फिर से कनेक्शन स्थापित करना होगा?ड्रॉपविज़ार्ड-हाइबरनेट

मैं इस PR, (मेरे जार में कोई hibernateBundle.configure)

पाया लेकिन यह अभी तक सार्वजनिक रिलीज में हो प्रतीत नहीं होता है लेकिन शायद मैं गलत बात के लिए देख रहा हूँ। अब तक, मैं बस को hibernate.hbm2dll.auto सेट करने का प्रयास कर रहा हूं। आखिरकार, के लिए एक और तरीका हो सकता है Dropwizard में हाइबरनेट तालिका निर्माण सक्षम करें ... तो, कोई मदद?

धन्यवाद।


संपादित करें: मैं स्पष्ट रूप से बजाय hbm2ddl.auto का उपयोग करने का स्कीमा बनाने के लिए एक और कोण से समस्या से संपर्क किया,। प्रस्तावित उत्तर देखें।

+0

मेरे पास एक ही समस्या है। मुझे लगता है कि आप क्लासपाथ में केवल आपूर्ति persistence.xml की आपूर्ति कर सकते हैं और इसे –

उत्तर

22

संपादित करें: समस्या हल हो गई है! YAML config में ऐसा करने से वर्तमान में काम करता है: (Dropwizard 0.7.1)

database: 
    properties: 
     hibernate.dialect: org.hibernate.dialect.MySQLDialect 
     hibernate.hbm2ddl.auto: create 

(this answer से)


पुराना जवाब:

यह मैं वर्तमान में क्या उपयोग कर रहा हूँ है : एक वर्ग जो स्कीमा को SQL फ़ाइल में स्कीमा निर्यात करने या डेटाबेस को संशोधित करने के लिए हाइबरनेट के SchemaExport को कॉल करता है। मैं बस अपनी संस्थाओं को बदलने के बाद, और आवेदन चलाने से पहले इसे चलाता हूं।

public class HibernateSchemaGenerator { 

    public static void main(String[] args) { 
     Configuration config = new Configuration(); 

     Properties properties = new Properties(); 

     properties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"); 
     properties.put("hibernate.connection.url", "jdbc:mysql://localhost:3306/db"); 
     properties.put("hibernate.connection.username", "user"); 
     properties.put("hibernate.connection.password", "password"); 
     properties.put("hibernate.connection.driver_class", "com.mysql.jdbc.Driver"); 
     properties.put("hibernate.show_sql", "true"); 
     config.setProperties(properties); 

     config.addAnnotatedClass(MyClass.class); 

     SchemaExport schemaExport = new SchemaExport(config); 

     schemaExport.setOutputFile("schema.sql"); 
     schemaExport.create(true, true); 

    } 

} 

मुझे पहले हाइबरनेट उपकरणों के बारे में पता नहीं था। इसलिए hbm2ddl.auto = create जैसे कार्य करने के लिए सेवा प्रारंभिकरण में इस कोड का उदाहरण उपयोग किया जा सकता है।

मैं वर्तमान में आउटपुट एसक्यूएल उत्पन्न करने और समीक्षा करने के लिए कक्षा (ग्रहण या मेवेन से) चलाकर इसे उपयोग कर रहा हूं।

+0

काम करना चाहिए दस्तावेज़ों में नहीं मिला। स्कीमा उत्पन्न करने के लिए आदेश क्या है? – ravi404