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:












Deja un comentario