Hibernate Ejecutar Script Sql al Crear el Schema de la Base de Datos

By | 10/27/2013

Hibernate cuenta con una propiedad no muy documentada que te permite, al momento de crear la base, ejecutar un script sql, por ejemplo para insertar datos iniciales.

El script solo se ejecuta en create que crea el schema destruyendo los datos existente o create-drop que hace lo mismo pero haciendo un drop del schema al finalizar la SessionFactory de hibernate.

Tu configuración de Hibernate debe lucir algo así.

Observa bien estas dos propiedades hibernate.hbm2ddl.auto definida en este caso como ‘create’ y la propiedad hibernate.hbm2ddl.import_files a la que le he indicado el classpath del archivo sql que deseo que se ejecute.

	<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource" ref="myDataSource" />
		<property name="packagesToScan" value="com.gp.domain" />
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.format_sql">true</prop>
				<prop key="hibernate.hbm2ddl.auto">create</prop>
				<prop key="hibernate.hbm2ddl.import_files">/com/gp/domain/initial_data.sql</prop>
			</props>
		</property>
	</bean>

Tu script sql sería algo así, según tu propia necesidad

INSERT INTO type_credential (name) VALUES ("PASSPORT");
INSERT INTO type_credential(name) VALUES ("SOCIAL SECURITY");
INSERT INTO type_credential(name) VALUES ("DRIVER LICENSE");
Compartir esto:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *