lunes, julio 08, 2013

Generar JPA Entities a partir de tablas

Eclipse cuenta con herramientas muy utiles para trabajar con JPA una de las mas comunes es la llamada: "Dali Java Persistence Tools" que viene integrada en las nuevas versiones de Eclipse, especificamente hablare de la STS 3.3

Una de las funciones que he utilizado en recientes proyectos es la de generar entidades JPA a partir de tablas ya existentes en la BD
, aqui los pasos para hacerlo:

Nota: Esto es un caso de uso, no un tutorial.

1. Configurar la conexion a la BD usando la vista Data Source Explorer

2. Hay que agregar la faceta JPA a nuestro proyecto para poder utilizar las herramientas JPA de Dali, boton derecho sobre el proyecto e ir a Properties --> Project Facets


Como se muestra en la imagen hay que seleccionar el checkbox JPA y despues dar click en el link: "Further configuration required"

Se abrira el siguiente dialogo:
Como se ve en la imagen, primero seleccionas el sabor de JPA a utilizar en este caso 2.1 generico.

El proyecto en el que estoy trabajando es un proyecto Maven-Spring, el cual tiene como dependencia a Hibernate asi que no es necesario decirle a Dali donde esta la libreria JPA pues ya se encuentra en el build path. Es por eso que seleccione: "Disable Library Configuration".

En seguida seleccionas la conexion que previamente configuraste en Eclipse como se indico en el paso 1.

En mi caso selecciono: "Discover annotated classes..." porque mis entidades utilizan la anotacion @Entity y no las defino en el persistence.xml

3. Una vez que el proyecto tiene la Faceta JPA se podra tener acceso al menu contextual: "JPA Tools" al hacer click sobre el proyecto, como se ve en la fig:



Al seleccionar la opcion "Generar Entidades desde Tablas" saldra el siguiente dialogo:


Aqui seleccione mi conexion de BD: "Teradata Local", despues el esquema en el que estan las tablas y finalmente seleccionas las tablas que quieres usar para generar los entities.

Es importante notar que en mi caso deseleccione el checkbox "List generated classes in persistence.xml" ya que como lo mencione anteriormente estoy usando el enfoque de anotaciones @Entity.

Si haces click en Next, apareceran mas opciones entre ellas decirle como generar las llaves, seleccionar los campos si no requieres que los genere todos, etc. Una opcion que es importante es la de definir en que paquete pondra los entities generados:



Al dar click en el boton Finish se crearan los entities en el paquete definido.


No hay comentarios.:

Publicar un comentario