使用Hibernate注释的文本字段

ber*_*rdw 47 annotations hibernate blob

我在设置字符串的类型时遇到了问题

public void setTextDesc(String textDesc) {
    this.textDesc = textDesc;
}

@Column(name="DESC")
@Lob
public String getTextDesc() {
    return textDesc;
}
Run Code Online (Sandbox Code Playgroud)

它没有用,我检查了mysql架构,它仍然是varchar(255),我也尝试过,

@Column(name="DESC", length="9000")
Run Code Online (Sandbox Code Playgroud)

要么

@Column(name="DESC")
@Type(type="text")
Run Code Online (Sandbox Code Playgroud)

我正在努力使类型成为TEXT,任何想法都将受到赞赏!

Chs*_*y76 85

你说"我检查了mysql架构并且它仍然是varchar(255)" - 你是否希望Hibernate自动改变你的数据库?它不会.即使你已经hibernate.hbm2ddl.auto设置,我也不相信Hibernate会改变现有的列定义.

如果您要生成新的数据库创建脚本,@Lob如果未明确指定长度(或者如果您这样做并且它小于65536),则应生成"TEXT"类型列.您可以通过显式声明@Column注释中的类型来强制执行此操作,但请记住,数据库之间不可移植:

@Column(name="DESC", columnDefinition="TEXT")
Run Code Online (Sandbox Code Playgroud)