Ben*_*Ben 6 java mysql hibernate hbm2ddl
我试图在我继承的项目上启用hbm2ddl.auto = validate.我现在为String属性获得了许多错误的列类型异常,这些异常使用text或mediumtext(MySQL数据库)进行映射.
映射是:
@Column(name = "DESCRIPTION", nullable = false, length = 65535)
@Length(max = 65535)
@NotNull
public String getDescription() {
return this.description;
}
Run Code Online (Sandbox Code Playgroud)
db中的数据类型是'text'(utf8_general_ci).
我认为这应该是正确的映射,但Hibernate抱怨它发现了文本,但期待长篇大论.
我检查了hibernate配置,但没有指定对话框.我已经添加
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
Run Code Online (Sandbox Code Playgroud)
但这似乎没有什么区别.
我知道我可以将columnDefinition ="text"添加到映射中,但我必须在很多地方这样做,恕我直言,映射应该是正确的.出了什么问题?有任何想法吗?
谢谢
您必须将columnDefinition添加到@Column注释,如下所示:
@Column(name = "DESCRIPTION", nullable = false, length = 65535, columnDefinition="TEXT")
Run Code Online (Sandbox Code Playgroud)