Plugin Hibernate3 para Maven

2
7770

Plugin Hibernate3 para Maven

En este tutorial vamos a ver las posibilidades que nos ofrece el plugin de Hibernate3 para Maven.

¿Qué nos aporta este plugin?

Este plugin principalmente nos aporta la siguiente funcionalidad a través de goals de maven:

  • Generación del esquema de base de datos a partir de clases con anotaciones (también desde archivos *.hbm.xml).
  • Generación de los archivos de mapeo (archivos *.hbm.xml) desde clases Java.
  • Generación de clases Java a partir de sus archivos de mapeo (archivos *.hbm.xml).
  • Generación de documentación en HTML del modelo de datos.
  • Generación del archivo de configuración de hibernate (hibernate.cfg.xml).

El camino se hace al andar, un ejemplo:

A continuación vamos a probar el plugin, concremente veremos los tres primeros puntos (uno,dos,tres) basándonos en un ejemplo, modelaremos mediante clases Java anotadas los siguientes requisitos:

  • Un libro tiene un título, un precio y un número de páginas, además un libro pertenece a una única editorial, puede estar escrito por varios autores y puede pertenecer a varias categorías.
  • Un autor tiene un nombre y una dirección de correo, ambos son requeridos y además no puede haber dos autores con el mismo email.
  • Una categoría tiene un nombre requerido y opcionalmente una descripción.
  • Una editorial tiene un nombre y una url, ambos requeridos.

Trabajaremos con el gestor de datos Mysql 5, pero podremos migrarlo fácilmente a Oracle o cualquier otro, simplemente cambiando las propiedades de configuración.

Si quieres trastear, puedes descargarte el código fuente desde clic aquí

Modelo con clases Java anotadas:

Autores de libros:

Categorías de libros:

Editoriales de libros:

Libros:

Propiedades de conexión a la base de datos: /src/main/resources/db.properties:

Este archivo es usado por el plugin a través del archivo de configuración de hibernate (/src/main/resources/hibernate.cfg.xml) y
se relacionan en la configuración del plugin de hibernate 3 para maven a través de su archivo de configuración pom.xml.

Archivo de configuración de hibernate /src/main/resources/hibernate.cfg.xml:

Registramos en el archivo de configuración de Maven (pom.xml) el plugin de Hibernate 3:

Generación del esquema de base de datos a partir de clases (con y sin anotaciones).

Ejecutamos el siguiente comando (compilamos antes por las anotaciones):

mvn compile hibernate3:hbm2ddl.

Resultados del comando:

Archivo generado: target\hibernate3\sql\bookStore.sql

Captura de MySql Query Browser

Generación de los archivos de mapeo (archivos *.hbm.xml) desde clases Java.

Ejecutamos el siguiente comando:

mvn hibernate3:hbm2hbmxml.

Resultados del comando:

Maven nos deja los archivos generados en el directorio target\hibernate3\generated-mappings

Generación de clases Java a partir de sus archivos de mapeo (archivos *.hbm.xml).

Ejecutamos el siguiente comando:

mvn hibernate3:hbm2java.

Resultados del comando:

Maven nos deja los archivos generados en el directorio target\hibernate3\generated-sources

Conclusiones

Sin lugar a dudas, Maven ha supuesto un antes y un después en la construcción de proyectos, en este caso, este plugin es una alternativa ideal a usar ant con hibernate tools.

En Autentia, estamos constantemente formándonos para conocer cuales son las herramientas que hay en el mercado y cuales se adaptan mejor en cada caso. Espero nos tengais en cuenta si necesitais algún tipo de consultaría o formación a medida.

Bueno, eso es todo, un saludo.
Carlos García. Creador de MobileTest.

cgpcosmad@gmail.com

2 Comentarios

  1. Increible, siempre me ha costado muchísimo configurar el Hibernate Tools para Eclipse para poder conseguir lo que ahora me hace Maven… Hace poco que empiezo a utilizar Maven2 por mi cuenta (antes todo estaba ya hecho en los proyectos en lo que trabajo) y este tutorial me ha servido muchísimo para proyectos personales.

    He hecho una adaptación mínima, para poder usar HSQLDB, y he de decir que los resultados son fantásticos.

    Gracias por vuestra inestimable ayuda, como siempre!

Dejar respuesta

Please enter your comment!
Please enter your name here