Saltar al contenido

¿Cuál es el significado de la anotación @javax.persistence.Lob en JPA?

Esta es la contestación más exacta que te podemos dar, pero mírala pausadamente y analiza si es compatible a tu proyecto.

Solución:

@javax.persistence.Lob significa que el campo anotado debe ser representado como BLOB (datos binarios) en la Base de Datos.

Puede anotar cualquier Serializable tipo de datos con esta anotación. En JPA, al persistir (recuperación), el contenido del campo se serializará (deserializará) utilizando la serialización estándar de Java.

uso común de @Lob es anotar un HashMap campo dentro de su Entidad para almacenar algunas de las propiedades del objeto que no están asignadas a las columnas de la base de datos. De esa manera, todos los valores no asignados se pueden almacenar en la base de datos en una columna en su representación binaria. Por supuesto, el precio que se paga es que, dado que se almacenan en formato binario, no se pueden buscar mediante JPQL/SQL.

Según: https://docs.oracle.com/javaee/7/api/javax/persistence/Lob.html

@Lob Especifica que una propiedad o campo persistente debe conservarse como un objeto grande para un tipo de objeto grande compatible con la base de datos.

@javax.persistence.Lob significa que el campo anotado debe representarse como BLOB (datos binarios) en la base de datos.

Supongo que en la base de datos podría tratarse no solo de datos binarios sino también de caracteres. Como podríamos tener BLOB y CLOB. Aquí hay ejemplos en código Java:

@Lob
@Column(name = "CHARS", columnDefinition = "CLOB")
private String chars;`

@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "DATA", columnDefinition = "BLOB", nullable = false)
private byte[] data;

Comentarios y valoraciones

Si haces scroll puedes encontrar las críticas de otros usuarios, tú además tienes la opción de insertar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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