Generar clases usando revenge.xml (exclusión de tablas)

En el caso de que no deseemos hacer una copia entera del esquema de base de datos y queramos filtrar determinadas tablas, debemos realizar un proceso similar, pero diferente al anteriormente utilizado.

Importante: Actualmente el plugin Hibernate para generar las tablas a partir de la base de datos, no permite acceder a múltiples esquemas a la vez. Si quisiéramos tener mapeadas tablas de diferentes esquemas lo tendremos que hacer en varias pasadas.

El primer paso que debemos realizar es abrir el configurador avanzado de Hibernate para la generación de las clases a partir de las tablas pulsando primero en el siguiente icono para desplegar el menú emergente

Y tras ello accediendo al menú de configuración de Hibernate para la generación de código

Tras ello se nos mostrará un Wizard donde podremos configurar los parámetros de la generación de código, entre ellos, el fichero revenge.xml donde podremos incluir/excluir tablas y/o esquemas.

En esta pantalla debemos configurar los siguientes campos:

  • Name: Nombre del generador.
  • Output directory: Directorio destino del código generado, debe ser en nuestro proyecto dentro de la ruta src/main/java.
  • Package: Nombre del paquete en el que se meterán las clases generadas.
  • Revenge.xml: Crearemos o especificaremos el fichero “revenge” con las inclusiones/exclusiones.

Al hacer click sobre “Setup” en la opción de revenge.xml navegaremos al siguiente menú que nos permitirá incluir un fichero revenge existente o crear un o nuevo.

En este caso le damos a crear uno nuevo mostrándose un menú donde especificaremos la ruta y el nombre de ese nuevo fichero

Tras ello podremos configurar el fichero revenge.xml para añadir o quitar tablas y esquemas. Hibernate - Ingenieria Inversa

Una vez terminada la configuración del fichero revenge.xml le damos a Apply para guardar los cambios. Ejemplo de fichero revenge.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >
<hibernate-reverse-engineering>
    <schema-selection match-schema="MARLENE"/>
    <table-filter match-schema="MARLENE" match-name="VPARTIDAS"/>
</hibernate-reverse-engineering>

Por último accedemos a la opción Exporters para configurar cómo exportaremos esas tablas a clases Java.

En esta pantalla sólo debemos marcar la opción Generate EJB annotations para que genere las anotaciones JPA que necesitamos para crear las tablas. Una vez marcado le damos a aplicar y volvemos a la pestaña anterior.

Nos aseguramos que todos los checks de generación estén marcados salvo Use custom templates que lo dejaremos desmarcados, volvemos a darle a aplicar y ejecutamos el generador dándole a Run.

Tras ello se nos generarán las clases correspondientes a las tablas de base de datos y las clases Home respectivas para la generación y modificación de dichas tablas, no obstante en la estructura de Fundeweb 2.0 estas últimas no son necesarias.

El resultado final de este ejemplo sería el siguiente:


PEDRO DELGADO YARZA 2014/02/12 12:04
JUAN MIGUEL BERNAL GONZALEZ 12/06/2019 11:36

  • fdw2.0/fundeweb2.0/gt/generar_clases_usando_revenge.xml_exclusion_de_tablas.txt
  • Última modificación: 12/06/2019 11:37
  • por JUAN MIGUEL BERNAL GONZALEZ