Trabajar con objetos pesados @Lob

Tutorial de JPA @LobJPA nos permite mediante la anotación @Lob mapear con la base de datos objetos pesados, como podría ser imágenes, xml, binarios, cadenas de texto extensas, json, etc. Cualquier objeto que pueda tener un tamaña muy grande o de longitud indefinida.

 

@Lob

 

La anotación @Lob es lo único que se requiere para indicarle a JPA que ese campo es un objeto pesado y que debe de tratarse como tal. Por lo general se utiliza con los arreglos de bytes, ya que permite almacenar cualquier cosa.

La anotación @Lob no tiene ningún atributo, por lo que solo será necesario definirla para que funcione. Otro punto importante es que esta anotación creará una columna de tipo longblob en mysql y podría variar según el manejador de base de datos utilizados, pero al final siempre será un campo para objetos pesados.

Para poner en práctica esta anotación, retomaremos la entidad Employee, en esta ya habíamos agregado la propiedad photo  de tipo byte[], en la cual vamos a almacenar la foto del empleado, sin embargo, no habíamos entrado en detalles. La entidad Employee se ve de la siguiente manera:

 

Observemos que @Lob es mucho más simple de lo que parece, sin embargo, recordemos que siempre serán necesarias las anotaciones @Column & @Basic para definir los atributos de la columna y la estrategia de carga. Por lo general las propiedades marcadas como @Lob son cargadas en la creación del objeto y no siempre es requerido el objeto pesado, por lo que es aconsejable utilizar la anotación @Basic y marcar el atributo como LAZY.

 

Finalmente, la tabla de empleados se vera de la siguiente manera:

@lob

 

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

Artículos relacionados

Ciclo de vida de las Entidades Entender el ciclo de vida de las Entidades es sin duda uno de los puntos cruciales de JPA, pues entender cómo es que una Entidad es gestionada por E...
Mapeo de fechas con @Temporal Mediante la anotación @Temporal es posible mapear las fechas con la base de datos de una forma simple. Una de las principales complicaciones cuando t...
Mapeo de tablas con @Table En la sección hablaremos de la anotación   y su importancia a la hora de definir entidades. La anotación @Table es utilizada para indicarle a JPA cont...

Oscar Blancarte

Ideológico, Innovador y emprendedor, Padre, Tecnólogo y Autor, amante de la ciencia y la tecnología en todos sus colores y sabores. Arquitecto de software & Full Stack Developer con experiencia en la industria del desarrollo de software y la consultoría. Amante de la programación y el Ajedrez.

Deja un comentario

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