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.