Spring ROO: Ingeniería Inversa de una base de datos

Como comentábamos en este post que la última milestones de Spring ROO ofrecía soporta para ingeniería inversa de base de datos, pues bien, vamos a ver cómo se haría y algunas peculiaridades de las enitdades que genera Spring ROO.

Si no tenéis configurado el Entorno: Spring ROO + Maven + Spring Tool Suite os recomiendo leer antes este post.

En el post de hoy vamos a importar una base de datos MySQL de la herramienta de gestión de incidencias .

Comencemos ya…

1) Creo una carpeta DBRE_Mantis y desde dentro ejecuto setEnvironment_ROO.bat:

2) Lanzo >roo

3) Creo el proyecto con >project –topLevelPackage es.indra.dbre.mantis

4) Establezco la persistencia: Hibernate con MySQL: >persistence setup –provider HIBERNATE –database MYSQL

5) Edito los valores de conexión a la base de datos en el fichero src/main/resources/META-INF/spring/database.properties (se puede hacer por comandos roo pero creo que es más sencillo editar directamente el fichero):

6) Desde roo reviso si están bien introducidos con: >database properties list

7) Y por fin el comando clave: >database reverse engineer –package ~.dominio –schema mantis este comando me hará ingeniería inversa de la base de datos configurada en database.properties y el esquema indicado a las clases del paquete dominio (dentro del paquete raíz del proyecto):

8) Genero el proyecto Eclipse con >perform eclipse

9) Import el proyecto en STS::

10) Si vamos a cualquier Entidad generado veremos que en la entidad no aparece ningún atributo, sólo una nueva anotación @RooDbManaged:

Spring ROO genera las entidades importadas de BD de forma diferente a las generadas manualmente, y en lugar de crear los atributos en la clase lo hace en el Aspecto

.

De este modo Spring ROO puede hacer reingeniería de forma incremental.

11) Si abro el aspecto veo que contiene los atributos de la Entidad:

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 462 seguidores

%d personas les gusta esto: