欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-21 12:06:05
...
  • 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;