Spring JPA 使用注解映射MySQL数据库的Blob和Text类型数据

  • 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;

你可能感兴趣的:(Spring JPA 使用注解映射MySQL数据库的Blob和Text类型数据)