Si ejecuta la secuencia de comandos de esta manera ...
<?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>
... entonces se ejecuta antes de Hibernate hace su trabajo de inicialización.
Lo he probado nuevamente, especialmente para ti. Se ejecuta antes de que Hibernate cree las tablas. Ver este registro (ejecutando la secuencia de comandos se encuentra en las 3 primeras líneas, Hibernate en los últimos):
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
Esto ocurre después de que todo haya terminado. Respuesta incorrecta. Lo siento. Pero es genial ... – markthegrea
@markthegrea: Extraño, cuando lo intento, se hace antes de que hibernate cree las tablas. Para probarlo, he adjuntado los registros. Entonces tu problema debe ser algo más. -- Respuesta correcta. – Ralph
Ralph, lo descubrí. Estaba poniendo el código que me diste DESPUÉS de que se creó el origen de datos. Me llevó algo de tiempo obtener el registro de Spring, pero la ubicación definitivamente marcó la diferencia. Si lo coloca ANTES del xml de la fuente de datos, funciona según lo anunciado. No sabía que el orden hizo una diferencia en Spring. Además, Spring parece tener por defecto "jdbc: hsqldb: mem: testdb", específicamente, "testdb". Estaba nombrando el mío de manera diferente y Spring estaba iniciando "testdb" en la memoria. Cuando cambié el mío a "testdb", bingo, todo funcionó bien. ¡Gracias! – markthegrea