一尘不染

使用休眠注释的文本字段

hibernate

我在设置字符串类型时遇到麻烦,就像

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

@Column(name="DESC")
@Lob
public String getTextDesc() {
    return textDesc;
}

而且它没有用,我检查了mysql模式,它仍然是varchar(255),我也尝试过,

@Column(name="DESC", length="9000")

要么

@Column(name="DESC")
@Type(type="text")

我正在尝试将类型设为TEXT,任何想法将不胜感激!


阅读 183

收藏
2020-06-20

共1个答案

一尘不染

您说“我检查了mysql模式,它仍然是varchar(255)”-您是否希望Hibernate自动更改数据库?不会的
即使您已经hibernate.hbm2ddl.auto设置,我也不相信Hibernate会改变现有的列定义。

如果要生成新的数据库创建脚本,@Lob则在未显式指定长度的情况下(或如果长度小于65536)应生成“
TEXT”类型的列。您始终可以通过在@Column注释中显式声明类型来强制执行此操作,但请记住,这在数据库之间是不可移植的:

@Column(name="DESC", columnDefinition="TEXT")
2020-06-20