JPA中@javax.persistence.Lob注解的意义是什么?
What is the significance of @javax.persistence.Lob annotation in JPA?
我什么时候应该在 JPA 中使用 @javax.persistence.Lob
注释?这个注解可以注解哪些数据类型?
@javax.persistence.Lob
表示注解字段在数据库中应该表示为BLOB(二进制数据)。
您可以使用此注释对任何 Serializable
数据类型进行注释。
在 JPA 中,持久化(检索)字段内容将使用标准 Java 序列化进行序列化(反序列化)。
@Lob
的常见用法是在您的实体中注释一个 HashMap
字段,以存储一些未映射到数据库列的对象属性。这样,所有未映射的值都可以以二进制表示形式存储在数据库中的一列中。当然,付出的代价是,由于它们以二进制格式存储,因此无法使用 JPQL/SQL 搜索它们。
根据:https://docs.oracle.com/javaee/7/api/javax/persistence/Lob.html
@Lob 指定持久化 属性 或字段应作为大对象持久化到数据库支持的大对象类型。
@javax.persistence.Lob signifies that the annotated field should be
represented as BLOB (binary data) in the DataBase.
我想在数据库中,它不仅可以是二进制数据,还可以是基于字符的数据。
因为我们可以有 BLOB 和 CLOB。以下是 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;
我什么时候应该在 JPA 中使用 @javax.persistence.Lob
注释?这个注解可以注解哪些数据类型?
@javax.persistence.Lob
表示注解字段在数据库中应该表示为BLOB(二进制数据)。
您可以使用此注释对任何 Serializable
数据类型进行注释。
在 JPA 中,持久化(检索)字段内容将使用标准 Java 序列化进行序列化(反序列化)。
@Lob
的常见用法是在您的实体中注释一个 HashMap
字段,以存储一些未映射到数据库列的对象属性。这样,所有未映射的值都可以以二进制表示形式存储在数据库中的一列中。当然,付出的代价是,由于它们以二进制格式存储,因此无法使用 JPQL/SQL 搜索它们。
根据:https://docs.oracle.com/javaee/7/api/javax/persistence/Lob.html
@Lob 指定持久化 属性 或字段应作为大对象持久化到数据库支持的大对象类型。
@javax.persistence.Lob signifies that the annotated field should be represented as BLOB (binary data) in the DataBase.
我想在数据库中,它不仅可以是二进制数据,还可以是基于字符的数据。 因为我们可以有 BLOB 和 CLOB。以下是 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;