@Javax.persistence.Lob注释在JPA中有什么意义?

我什么时候应该在JPA中使用@javax.persistence.Lob注释? 此注释可以注释哪些数据类型?

@javax.persistence.Lob表示带注释的字段应该在DataBase中表示为BLOB(二进制数据)。

您可以使用此批注对任何可serializable数据类型进行批注。 在JPA中,在持久化(检索)后,将使用标准Java序列化对字段内容进行序列化(反序列化)。

LOB的常见用法是在实体内注释HashMap字段,以存储未映射到DB列的一些对象属性。 这样,所有未映射的值都可以在其二进制表示中的一列中存储在DB中。 当然,支付的价格是,因为它们以二进制格式存储,所以它们不能使用JPQL / SQL进行搜索。

根据: https : //docs.oracle.com/javaee/7/api/javax/persistence/Lob.html

@Lob指定持久属性或字段应作为大对象持久保存到数据库支持的大对象类型。

@ javax.persistence.Lob表示带注释的字段应该在DataBase中表示为BLOB(二进制数据)。

我想在数据库中它不仅可以是二进制数据,而且可以是基于字符的。 因为我们可以有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;