spring-data-jpa-guide icon indicating copy to clipboard operation
spring-data-jpa-guide copied to clipboard

大字段类型

Open zhangzhenhuajack opened this issue 6 years ago • 4 comments

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 avatar Sep 05 '18 05:09 zhangzhenhuajack

例子如上,亲测可以

zhangzhenhuajack avatar Sep 05 '18 05:09 zhangzhenhuajack

image

zhangzhenhuajack avatar Sep 05 '18 05:09 zhangzhenhuajack

其中

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

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

zhangzhenhuajack avatar Sep 05 '18 05:09 zhangzhenhuajack

其中

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

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

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

zxt47 avatar May 07 '20 13:05 zxt47