zhangzhenhuajack / spring-data-jpa-guide

spring-data-jpa-guide,Spring Data JPA实战,SpringDataJpa详解
http://www.jackzhang.cn/spring-data-jpa-guide/
365 stars 159 forks source link

大字段类型 #7

Open zhangzhenhuajack opened 5 years ago

zhangzhenhuajack commented 5 years ago

5.2.11 @Lob 将属性映射成数据库支持的大对象类型。支持以下两种数据库类型的字段。

  1. Clob(Character Large Ojects)类型是长字符串类型,java.sql.Clob、Character[]、char[] 和 String 将被映射为 Clob 类型。
  2. Blob(Binary Large Objects)类型是字节类型,java.sql.Blob、Byte[]、byte[] 和 实现了Serializable接口的类型将被映射为 Blob 类型。
  3. 由于Clob,Blob占用内存空间较大一般配合@Basic(fetch=FetchType.LAZY)将其设置为延迟加载
// clob
    @Lob
    @Column(columnDefinition = "Clob")
    public String getTestTxt() {
        return testTxt;
    }
//blob
    @Lob
    @Column(columnDefinition = "Blob")
    public Byte[] getTestTxt() {
        return testTxt;
    }
//text
    @Lob
    @Column(columnDefinition = "TEXT")
    public String getTestTxt() {
        return testTxt;
    }
// TEXT 类型的 (columnDefinition = "TEXT") 可以指定也可以不指定
zhangzhenhuajack commented 5 years ago

例子如上,亲测可以

zhangzhenhuajack commented 5 years ago

image

zhangzhenhuajack commented 5 years ago

其中

//    @Lob
    @Column//(columnDefinition = "TEXT")
    public String getTestTxt() {
        return testTxt;
    }

将 @Lob 等注释掉不影响结果

zxt47 commented 4 years ago

其中

//    @Lob
    @Column//(columnDefinition = "TEXT")
    public String getTestTxt() {
        return testTxt;
    }

将 @lob 等注释掉不影响结果

注释掉@Lob可以生效吗?是需要数据库中的字段已经是CLOB或者MySQL的text吗?