spring-data-jpa-guide
spring-data-jpa-guide copied to clipboard
大字段类型
5.2.11 @Lob 将属性映射成数据库支持的大对象类型。支持以下两种数据库类型的字段。
- Clob(Character Large Ojects)类型是长字符串类型,java.sql.Clob、Character[]、char[] 和 String 将被映射为 Clob 类型。
- Blob(Binary Large Objects)类型是字节类型,java.sql.Blob、Byte[]、byte[] 和 实现了Serializable接口的类型将被映射为 Blob 类型。
- 由于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") 可以指定也可以不指定
例子如上,亲测可以
其中
// @Lob
@Column//(columnDefinition = "TEXT")
public String getTestTxt() {
return testTxt;
}
将 @Lob 等注释掉不影响结果
其中
// @Lob @Column//(columnDefinition = "TEXT") public String getTestTxt() { return testTxt; }
将 @lob 等注释掉不影响结果
注释掉@Lob可以生效吗?是需要数据库中的字段已经是CLOB或者MySQL的text吗?