आप अपनी स्क्रिप्ट इस तरह चलाते हैं ...
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">
<jdbc:embedded-database id="dataSource" type="H2" >
<jdbc:script location="classpath:my.sql" />
</jdbc:embedded-database>
... तो यह क्रियान्वित किया जाता है इससे पहले कि हाइबरनेट इसके प्रारंभ सामान करता है।
मैंने इसे फिर से परीक्षण किया है, खासकर आपके लिए। हाइबरनेट टेबल बनाने से पहले यह चलाया जाता है। इस लॉग (चालू स्क्रिप्ट पहले 3 लाइनों में है, पिछले वाले में हाइबरनेट) देखें:
2011-11-01 19:10:08,380 [main] INFO org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactory - Creating embedded database 'dataSource'
2011-11-01 19:10:08,583 [main] INFO org.springframework.jdbc.datasource.init.ResourceDatabasePopulator - Executing SQL script from class path resource [my.sql]
2011-11-01 19:10:08,683 [main] INFO org.springframework.jdbc.datasource.init.ResourceDatabasePopulator - Done executing SQL script from class path resource [my.sql] in 100 ms.
2011-11-01 19:10:08,683 [main] INFO org.springframework.context.support.GenericApplicationContext - Bean 'dataSource' of type [class org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2011-11-01 19:10:08,683 [main] INFO org.springframework.context.support.GenericApplicationContext - Bean 'dataSource' of type [class org.springframework.jdbc.datasource.SimpleDriverDataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2011-11-01 19:10:08,700 [main] INFO org.springframework.context.support.GenericApplicationContext - Bean 'org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter#35712651' of type [class org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2011-11-01 19:10:08,717 [main] INFO org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean - Building JPA container EntityManagerFactory for persistence unit 'testH2DbPersistenceUnit'
2011-11-01 19:10:08,854 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
2011-11-01 19:10:08,859 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.7.Final
2011-11-01 19:10:08,861 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
...
2011-11-01 19:10:10,313 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - Running hbm2ddl schema update
2011-11-01 19:10:10,313 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - fetching database metadata
2011-11-01 19:10:10,315 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - updating schema
यह सब खत्म हो जाने के बाद होता है। गलत जवाब। माफ़ कीजिये। लेकिन यह बहुत अच्छा है ... – markthegrea
@markthegrea: अजीब, जब मैं इसे आज़माता हूं, हाइबरनेट टेबल बनाने के पहले किया जाता है। इसे साबित करने के लिए, मैंने लॉग संलग्न किए हैं। तो आपकी समस्या कुछ और होनी चाहिए। -- सही उत्तर। – Ralph
राल्फ, मैंने इसे समझ लिया। डेटासेट को बनाए जाने के बाद मैं आपके द्वारा दिए गए कोड को डाल रहा था। स्प्रिंग लॉगिंग प्राप्त करने के लिए मुझे कुछ समय लगा, लेकिन स्थान ने निश्चित रूप से एक अंतर बनाया। यदि आप इसे डेटासोर्स एक्सएमएल से पहले रखते हैं, तो यह विज्ञापन के रूप में काम करता है। मैं अनजान था कि आदेश वसंत में एक फर्क पड़ता है। इसके अलावा, वसंत डिफ़ॉल्ट रूप से "jdbc: hsqldb: mem: testdb", विशेष रूप से, "testdb" लगता है। मैं अलग-अलग नामकरण कर रहा था और वसंत स्मृति में "testdb" शुरू कर रहा था। जब मैंने अपनी "testdb" में बदल दिया, बिंगो, सब ठीक काम किया। धन्यवाद! – markthegrea