2016-05-01 5 views
18

वर्तमान में, मैं application.properties में निम्नलिखित गुणों के साथ डिफ़ॉल्ट @SpringBootApplication एनोटेशन उपयोग कर रहा हूँ:एक आधुनिक स्प्रिंग बूट + डेटा जेपीए और हाइबरनेट सेटअप के साथ एक डीडीएल निर्माण स्क्रिप्ट कैसे उत्पन्न करें?

spring.datasource.url=jdbc:mysql://localhost/dbname 
spring.datasource.username=X 
spring.datasource.password=X 
spring.datasource.driver-class-name=com.mysql.jdbc.Driver 
spring.jpa.hibernate.naming_strategy=my.package.CustomNamingStrategy 

जेपीए 2.1 के बाद से, मैं javax.persistence.schema-generation.* गुणों का उपयोग करने में सक्षम होना चाहिए, लेकिन उन्हें अपने application.properties में स्थापित करने के लिए लगता है कोई प्रभाव नहीं है।

मैंने उदाहरण like this देखा है जो अतिरिक्त सेम के पूरे समूह को तारते हैं, लेकिन वे माइस्क्ल का उपयोग नहीं कर रहे हैं। और किसी भी मामले में, ऐसा करने के लिए मुझे कई विकल्पों को कॉन्फ़िगर करने की आवश्यकता है जो वसंत अब मेरे लिए ख्याल रख रहे हैं।

  • एक डेटाबेस कनेक्शन की आवश्यकता की जा रही
  • आउटपुट निर्माण निर्देशिका
  • भी पैदा हाइबरनेट में स्क्रिप्ट के बिना MYSQL बोली
  • में एक स्कीमा निर्माण एसक्यूएल स्क्रिप्ट जनरेट करें:

    मेरे लक्ष्यों के प्रति टेबल को एक बड़ा प्लस होगा।

मैं नहीं करना चाहता:

  • एक जीवित डेटाबेस पर/ड्रॉप स्कीमा बनाएं

लिब संस्करणों: (, का उपयोग करते हुए Gradle नहीं maven)

hibernate   : 4.3.11.FINAL 
    spring framework : 4.2.5.RELEASE 
    spring-boot  : 1.3.3.RELEASE 
    spring-data-jpa : 1.10.1.RELEASE // for querydsl 4 support 
    spring-data-commons: 1.12.1.RELEASE // for querydsl 4 support 

उत्तर

40

आह, इस खोजी पोस्ट करने के ठीक बाद spring.jpa.properties में सभी गुण इसके अलावा

73.5 Configure JPA properties * जब स्थानीय EntityManagerFactory (उपसर्ग छीन के साथ) के रूप में सामान्य जेपीए गुण के माध्यम से पारित कर रहे हैं: वसंत डेटा डॉक्स का एक वर्ग पर मेरी नजर पड़ी। बनाया गया है। spring.jpa.properties साथ उपसर्ग javax.persistence गुण:

तो, मेरे अपने सवाल का जवाब देने

spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata 
spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create 
spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql 

यह करने के बाद, स्कीमा फ़ाइल परियोजना जड़ में स्वचालित रूप से उत्पन्न किया गया था।

+0

यह करने के लिए अपने स्प्रिंग विन्यास में उन गुणों को जोड़ने के लिए पर्याप्त था परिणाम प्राप्त करें जिसके बाद आप थे, या आपको Persistence.generateSchema (...) जैसी कुछ कॉल करने के लिए कुछ जावा कोड भी लिखना पड़ा? यदि आप साझा कर सकते हैं तो अपने अधिक समाधान को देखना अच्छा लगेगा। – Firefly

+0

उस कॉन्फ़िगर को जोड़ने के बाद अनिवार्य रूप से उत्तर में संशोधन किया गया, फ़ाइल जेनरेट किए गए स्रोतों में स्वचालित रूप से बनाई गई थी। – Casey

+0

मैंने देखा कि फ़ाइल रनटाइम पर उत्पन्न होती है। क्या इसे 'ऑफ़लाइन' उत्पन्न करने का कोई तरीका है? –

-1

एक स्प्रिंग-बूट आवेदन आप application.properties फ़ाइल में निम्न निर्धारित करने की आवश्यकता है, ताकि create.sql फ़ाइल प्राप्त करने के लिए

spring.jpa.generate-ddl=true 
spring.jpa.properties.javax.persistence.schema-generation.create-source=metadata 
spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create 
spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql 
+0

यह अभी भी वसंत के बिना काम करता है। Jpa.generate-ddl स्वीकृत उत्तर शो के रूप में –

संबंधित मुद्दे