- Clob(Character Large Ojects)类型是长字符串类型,具体的java.sql.Clob, Character[], char[] 和 java.lang.String 将被持久化为 Clob 类型。
- Blob(Binary Large Objects)类型是字节类型,具体的java.sql.Blob, Byte[], byte[] 和 serializable type 将被持久化为 Blob 类型。
- @Lob 持久化为Blob或者Clob类型,根据get方法的返回值不同,自动进行Clob和Blob的转换。
- 因为这两种类型的数据一般占用的内存空间比较大,所以通常使用延迟加载的方式,与@Basic标记同时使用,设置加载方式为FetchType.LAZY。
参考: 浅谈JPA的Blob和Clob注解方法
在MySQL中Blob和Clob对应的的字段类型有
tinytext (tintblob)、text (blob)、mediumtext (mediumblob)和longtext (longblob)
参考: MySQL中tinytext、text、mediumtext和longtext详解
一般在java中Clob类型用String声明,Blob用byte[]声明MySQL数据库对应字段,例如:
@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "f_task_content", nullable = false, columnDefinition = "Text")
private String taskContent;