El paso de parámetros a hbm2ddl
Pregunta
Tengo persistence.xml parametrizada. Estoy tratando de generar DDL esquema utilizando hbm2ddl. ¿Cómo puedo pasar parámetros a esta herramienta?
Mis persistence.xml se parece a
<property name="hibernate.connection.driver_class" value="${persistence.connection.driver.class}"/>
<property name="hibernate.dialect" value="${persistence.dialect}"/>
<property name="hibernate.connection.password" value="${persistence.password}"/>
<property name="hibernate.connection.username" value="${persistence.username}"/>
Cuando comienzo valores de los parámetros de servidor se pasan como JAVA_OPTS (usando -Dpersistence.dialect = valor). Y funciona bien.
¿Cómo puedo hacer esto con hbm2ddl?
He intentado propiedad
<hibernatetool destdir="${gensrc.sql.dir}">
<property key="persistence.dialect" value="org.hibernate.dialect.Oracle9Dialect"/>
<jpaconfiguration persistenceunit="${persistence.unit.name}" />
<classpath>
<!-- it is in this classpath you put your classes dir,
and/or jpa persistence compliant jar -->
<path location="${build.classes.dir}" />
</classpath>
<hbm2ddl export="false" drop="true" outputfilename="create_${ant.project.name}.sql" format="true" haltonerror="true" />
</hibernatetool>
Pero no consigue este valor. Muestra me error.
build.xml:160: org.hibernate.HibernateException: Dialect class not found: ${persistence.dialect}
Solución
Se puede especificar el dialecto través propertyfile
. Declarar en un hibernate.properties
:
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
Y utilizar de esta manera:
<jpaconfiguration propertyfile="hibernate.properties"/>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow