Declarar entidades con @Entity

Tutorial de JPA @EntityUna de las grandes ventajas de JPA es que nos permite manipular la base de datos a trav茅s de objetos, estos objetos son conocidos como Entity, las cuales son clases comunes y corrientes tambi茅n llamada POJO鈥檚 (Plain Old Java Objects), estas clases tiene la particularidad de ser clases que est谩n mapeadas contra una tabla de la base de datos, dicho mapeo se lleva a cabo generalmente mediante Anotaciones. Dichas anotaciones brindan los suficientes metadatos como para poder por relacionar las clases contra las tablas y las propiedades contra las columnas. Es de esta forma que JPA es capaz de interactuar con la base de datos a trav茅s de las clases.

A lo largo de este cap铆tulo y los siguientes estaremos estudiando las diversas anotaciones que nos permitir谩n crear nuestras Entity as铆 como relacionar entidades con otras.

 

Anotaci贸n @Entity

Como ya discutimos hace un momento, las entidades son POJO鈥檚 por lo que son simples clases Java como cualquier otra, sin embargo, JPA debe de ser capaz de identificar que clases son Entity para de esta forma poderlas administrar. Es aqu铆 donde nace la importancia de la anotaci贸n @Entity, esta anotaci贸n se debe de definir a nivel de clase y sirve 煤nicamente para indicarle a JPA que esa clase es una Entity, veamos el siguiente ejemplo:

En el ejemplo vemos una clase com煤n y corriente la cual representa a un Empleado (Employee), hasta este momento la clase Employee, no se puede considerar una Entity, pues a un no tiene la anotaci贸n @Entity que la se帽ale como tal. Ahora bien, si a esta misma clase le agregamos la anotaci贸n @Entity le estaremos diciendo a JPA que esta clase es una Entidad y deber谩 ser administrada por EntityManager, veamos el siguiente ejemplo:

En este punto la clase ya se puede considerar una Entidad, pero faltar铆a un paso m谩s para que JPA cargue esta clase como Entidad. Todas las clases entidades que vamos a utilizar en nuestro proyecto deben de estar contenidas en la unidad de persistencia (PersistenceUnit) que definimos en el archivo persistence.xml, por lo cual tendremos que retornar a este archivo y agregar la clase la clase, para esto nos ubicaremos en la pesta帽a de Design y presionaremos el boton Add Class, esto nos mostrara un peque帽o dialogo con todas las entidades de nuestro proyecto, seleccionamos la clase Employee y presionamos OK, al terminar la pantalla se deber谩 ver de la siguiente manera:

persistencexml add class

Cabe mencionar que este procedimiento lo debemos repetir por cada nueva Entidad que agreguemos a nuestro proyecto, de lo contrario el EntityManager nos dir谩 que no existe la Entidad. Si el hecho de tener que registrar cada entidad se te hace molesto o repetitivo, puedes seleccionar la opci贸n Include All Entity Classes in “JPATutorial” Module que se encuentra en el mismo persistence.xml, esto har谩 que todas las entidades marcadas como @Entity sean autom谩ticamente manejadas por el EntityManager sin la necesidad de tener que agregar manualmente cada Entity que vamos creando. En lo particular suelo seleccionar la opci贸n para evitar tener que registrarlas.

 

Un aspecto importante cuando definimos entidades es si deberemos implementar la interface serializable. En general las opiniones esta divididas, algunos dicen siempre deber谩n implementarla y otros dicen que no siempre, la realidad es que la interface serializable solo es necesario cuando los objetos son transmitidos fuera de nuestra m谩quina virtual, como ser铆a el caso del uso de interfaces remotas de EJB, pero por lo general no ser谩 necesario implementarla.

 

Ya con esta breve explicaci贸n ya podemos entender el concepto b谩sico de las entidades, pero falta relacionar la clase con la tabla de la base de datos, y es precisamente lo que veremos en la siguiente secci贸n del tutorial.

 

NOTA: Este art铆culo es solo una secci贸n del Tutorial de JPA, para ver el contenido completo de este tutorial regresa al 脥ndice en el bot贸n de abajo.


Anterior脥ndiceSiguiente

Deja un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *