2011-05-13 27 views
14

He creado mis clases de modelo con anotaciones JPA 2.0. En tiempo de ejecución, usaré EclipseLink 2.2.0, pero he tenido cuidado de usar solo anotaciones JPA puras en mis clases modelo.Generar DDL para JPA 2.0 con EclipseLink

Ahora, ¿Cómo se genera el DDL de esquema para la base de datos?

Quiero usar la API EclipseLink para generar el DDL de las clases, pero no en tiempo de ejecución. En cambio, quiero que una clase de Java se ejecute en la línea de comandos y que emita el DDL. Lo que this guy did for Hibernate, quiero para EclipseLink.

También me conformaría con una tarea Ant o algún plug-in para Maven.

Además, he elegido el nombre de mi archivo jpa.xml en lugar de persistence.xml; puntos de bonificación si su solución también da cuenta de esto. De lo contrario, cambiaré el nombre de mi archivo persistence.xml.

Respuesta

6

puede encontrar sus respuestas en la documentación EclipseLink, más específicamente en la sección llamada Using EclipseLink JPA Extensions for Schema Generation.

Allí encontrará que hay una propiedad llamada eclipselink.ddl-generation con valores posibles como NONE | CREATE_ONLY | DROP_AND_CREATE.

Allí podrá encontrar una propiedad adicional llamado eclipselink.ddl-generation.output-mode, cuya documentación se encuentra en esta misma página.

Le proporcionará control sobre si desea simplemente generar un script o ejecutar realmente el DDL en la base de datos.

Espero que ayude!

+6

-1 porque aunque esas configuraciones son claras, no resuelven el problema real de generar el esquema en algún momento antes de iniciar la aplicación completa. –

1

Sé que esto es un poco tarde, pero he estado luchando con el mismo problema. Lo que encontré fue después de hacer las configuraciones como configurar "eclipselink.ddl-generation", luego enganché el siguiente código en nuestra compilación. Obtuve el archivo ddl para generar. La clase EntityManagerHolder debería estar definida en su context.xml. Es un poco hackish pero funciona.

Cuestiones relacionadas