我在设置字符串类型时遇到麻烦,就像
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,任何想法将不胜感激!
您说“我检查了mysql模式,它仍然是varchar(255)”-您是否希望Hibernate自动更改数据库?不会的 即使您已经hibernate.hbm2ddl.auto设置,我也不相信Hibernate会改变现有的列定义。
hibernate.hbm2ddl.auto
如果要生成新的数据库创建脚本,@Lob则在未显式指定长度的情况下(或如果长度小于65536)应生成“ TEXT”类型的列。您始终可以通过在@Column注释中显式声明类型来强制执行此操作,但请记住,这在数据库之间是不可移植的:
@Lob
@Column
@Column(name="DESC", columnDefinition="TEXT")