使用Hibernate注释的文本字段

我有麻烦设置一个string的types,它像

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") 

我正在尝试使types为文本,任何想法将不胜感激!

你说:“我检查了mysql模式,它仍然是varchar(255)” – 你希望Hibernate自动改变你的数据库? 它不会。 即使你有hibernate.hbm2ddl.auto集,我不相信Hibernate会改变现有的列定义。

如果你要生成新的数据库创build脚本,@ @Lob应该生成“TEXT”types列,如果你没有明确指定长度(或者如果你这样做,那么65536)。 你总是可以通过在@Column注解中显式声明types来强制这样做,但是要记住在数据库之间不可移植:

 @Column(name="DESC", columnDefinition="TEXT")