我在设置字符串类型时遇到问题,它就像
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")
我正在尝试将类型设置为文本,任何想法将不胜感激!
最佳答案
你说“我检查了 mysql 架构,它仍然是 varchar(255)”——你是否期望 Hibernate 自动更改你的数据库?不会的。即使您设置了 hibernate.hbm2ddl.auto,我也不相信 Hibernate 会更改现有的列定义。
如果您要生成新的数据库创建脚本,如果您没有显式指定长度(或者如果您这样做且长度小于 65536),则 @Lob
应生成“TEXT”类型列。您始终可以通过在 @Column
注释中显式声明类型来强制执行此操作,但请记住这在数据库之间不可移植:
@Column(name="DESC", columnDefinition="TEXT")
关于hibernate - 使用 Hibernate Annotation 的文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1281188/