2012-08-23 20 views
8

का उपयोग किए बिना LiquiBase + स्प्रिंग + हाइबरनेट एकीकृत करने के लिए कैसे मैं पहले से ही LiquiBase, स्प्रिंग और हाइबरनेट के बीच एकीकरण के बारे में पदों की एक बहुत कुछ पढ़ा है, लेकिन उनमें से कोई मेरी स्थिति डायन के लिए लागू है:hibernate.xml विन्यास फाइल

मैं मैं एक नई परियोजना शुरू कर रहा हूं जो स्प्रिंग और हाइबरनेट का उपयोग करता है, इसलिए मैं परियोजना के जीवनकाल के दौरान डेटाबेस परिवर्तनों को प्रबंधित करने का एक तरीका देख रहा था। सबसे पहले मैंने hbm2ddl का उपयोग शुरू किया लेकिन फिर एहसास हुआ कि लोग कहते हैं कि यह उत्पादन वातावरण में बहुत अच्छा विचार नहीं है, इसलिए मैं इस निष्कर्ष पर पहुंचा कि लिक्कीबेस जाने का रास्ता था (इसलिए मुझे लगता है)।

समस्या यह है कि मैं एक hibernate.xml कॉन्फ़िगरेशन फ़ाइल (और LiquiBase का उपयोग करके मिले सभी उदाहरणों को एक hibernate.xml का उपयोग नहीं कर रहा हूं), क्योंकि मैं अपने POJO/DB कक्षाओं में जावा एनोटेशन का उपयोग कर रहा हूं और मेरा हाइबरनेट विन्यास इस

@Bean 
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() throws ClassNotFoundException 
{ 
    LocalContainerEntityManagerFactoryBean entityManagerFactoryBean = new LocalContainerEntityManagerFactoryBean(); 

    entityManagerFactoryBean.setDataSource(dataSource()); 
    entityManagerFactoryBean.setPackagesToScan(environment.getRequiredProperty(PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN)); 
    entityManagerFactoryBean.setPersistenceProviderClass(HibernatePersistence.class); 

    Properties jpaProterties = new Properties(); 
    jpaProterties.put(PROPERTY_NAME_HIBERNATE_DIALECT, environment.getRequiredProperty(PROPERTY_NAME_HIBERNATE_DIALECT)); 
    jpaProterties.put(PROPERTY_NAME_HIBERNATE_FORMAT_SQL, environment.getRequiredProperty(PROPERTY_NAME_HIBERNATE_FORMAT_SQL)); 
    jpaProterties.put(PROPERTY_NAME_HIBERNATE_NAMING_STRATEGY, environment.getRequiredProperty(PROPERTY_NAME_HIBERNATE_NAMING_STRATEGY)); 
    jpaProterties.put(PROPERTY_NAME_HIBERNATE_SHOW_SQL, environment.getRequiredProperty(PROPERTY_NAME_HIBERNATE_SHOW_SQL)); 
    jpaProterties.put(PROPERTY_NAME_HIBERNATE_HBM2DDL_AUTO, environment.getRequiredProperty(PROPERTY_NAME_HIBERNATE_HBM2DDL_AUTO)); 

    entityManagerFactoryBean.setJpaProperties(jpaProterties); 

    return entityManagerFactoryBean; 
} 

मैंने यह भी पाया 2 साल पहले की पोस्ट कह रही है कि यह विकल्प केवल 2.0 संस्करण (वर्तमान एक) में उपलब्ध होगा की तरह किया जाता है, और अगर यह पहले से ही लागू किया गया है मैं सोच रहा था। यदि हां, तो मैं इसे एएनटी स्क्रिप्ट में कैसे उपयोग करूं?

मुझे मूल डेटाबेस डीडीएल बनाने और निम्न डेटाबेस परिवर्तन लॉग बनाने और उन्हें उत्पादन डीबी में आयात करने की आवश्यकता है।

संपादित करें: मैं उपयोग कर रहा हूँ:

Liquibase 2.0.5

Liquibase हाइबरनेट 2.0.0

हाइबरनेट 4.1.4

वसंत 3.1.1

वसंत डेटा जेपीए 1.1.1

उत्तर

3

क्या आपने http://www.liquibase.org/documentation/spring.html देखा था?

यह डेटा स्रोत और कोई hibernate.xml का उल्लेख करता है।

प्रारंभिक पीढ़ी के लिए आप कमांड लाइन मोड और generateChangeLog का उपयोग कर सकते हैं।

http://www.liquibase.org/documentation/command_line.html देखें।

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC 
       "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
       "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory name="entityManagerFactoryBean"> 
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3307/test</property> 
     <property name="hibernate.connection.username">root</property> 
     <property name="hibernate.connection.password">123456</property> 
     <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> 
    </session-factory> 
</hibernate-configuration> 
+0

हाँ, मैं पहले से ही उन लोगों के उदाहरण के दोनों को देखा है, लेकिन मेरी समस्या क्या मानकों वास्तव में पारित करने के लिए है, क्योंकि मैं LiquiBase प्राप्त करना चाहते हैं है:

यहाँ एक न्यूनतम hibernate.xfg.xml आप की जरूरत के लिए जा रहे है डीबी मेरे पीओजेओ/डीबी एनोटेटेड कक्षाओं से बदलता है, न कि मेरे डीबी से। –

+1

ठीक है। अब मुझे सवाल मिल गया है। Http://stackoverflow.com/questions/776787/hibernate-using-jpa-annotated-entities-and-liquibase पर देखें। यह पूरा जवाब है। आपको सिर्फ डमी hibernate.cfg.xml की आवश्यकता होगी। – Vadzim

+0

डमी hibernate.cfg.xml द्वारा आपका क्या मतलब है? –

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

  • कोई संबंधित समस्या नहीं^_^