En la característica jpa-2.0, que se incorpora en OpenJPA, puede generar un lenguaje de definición de datos
(DDL) o interactuar directamente con la base de datos para definir esquemas de tabla basados en la definición de entidad JPA utilizando la herramienta
SchemaMapper. En la característica jpa-2.1, que se incorpora en EclipseLink, puede utilizar la nueva característica Generador de esquemas añadida en la especificación JPA 2.1, que tiene funciones similares que OpenJPA SchemaMapper.
Acerca de esta tarea
Si necesita funciones similares a las de OpenJPA SchemaMapper, puede configurar la característica Generador de esquemas que se halla en la especificación
JPA 2.1.
Procedimiento
- En la definición de la unidad de persistencia, dentro del archivo persistence.xml, especifique la propiedad de la acción de base de datos con los posibles valores de: none,
create, drop, drop-and-create. Cada valor corresponde a la acción que se emprende respecto a la base de datos. En el ejemplo siguiente se descartan las tablas que corresponden a las entidades especificadas en la unidad de persistencia y en su lugar se crean tablas nuevas.
<persistence-unit name="pu">
<properties>
<property name="javax.persistence.schema-generation.database.action"
value="drop-and-create" />
...
</properties>
</persistence-unit>
- Especifique la propiedad de acción de script con los valores posibles de: none,
create, drop, drop-and-create. Si se especifica cualquier otro valor distinto de none, también debe especificar una propiedad de destino. Esto significa que si la acción de script es create, que genera las sentencias de creación para la definición de entidades, debe especificar una propiedad de destino de creación correspondiente con un archivo de destino en el que se grabarán las sentencias.
<persistence-unit name="pu">
<properties>
<property name="javax.persistence.schema-generation.scripts.action"
value="drop-and-create" />
<property name="javax.persistence.schema-generation.scripts.create-target"
value="createTargetFile.ddl"/>
<property name="javax.persistence.schema-generation.scripts.drop-target"
value="sampleDrop.ddl"/>
...
</properties>
</persistence-unit>