【问题标题】:Problems with Hibernates hbm2ddl.auto=validate and MySQL text typesHibernate hbm2ddl.auto=validate 和 MySQL 文本类型的问题
【发布时间】:2011-08-22 14:33:21
【问题描述】:

我尝试在我继承的项目上启用 hbm2ddl.auto=validate。我现在得到了很多错误的列类型异常,这些异常是用文本或中文本(MySQL 数据库)映射的字符串属性。

映射为:

@Column(name = "DESCRIPTION", nullable = false, length = 65535)
@Length(max = 65535)
@NotNull
public String getDescription() {
    return this.description;
} 

db 中的数据类型是 'text' (utf8_general_ci)。

我认为这应该是正确的映射,但 Hibernate 抱怨它找到了文本但期待长文本。

我检查了休眠配置,但没有指定对话框。我添加了

<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>

但这似乎没有什么不同。

我知道我可以将 columnDefinition="text" 添加到映射中,但我必须在很多地方这样做,恕我直言,映射应该已经正确了。那么出了什么问题呢?有什么想法吗?

谢谢

【问题讨论】:

    标签: java mysql hibernate hbm2ddl


    【解决方案1】:

    您必须将 columnDefinition 添加到 @Column 注释,如下所示:

    @Column(name = "DESCRIPTION", nullable = false, length = 65535, columnDefinition="TEXT")
    

    【讨论】:

      猜你喜欢
      • 2016-06-25
      • 2011-03-11
      • 2011-11-03
      • 2013-04-05
      • 1970-01-01
      • 2012-06-12
      • 1970-01-01
      • 2011-03-18
      • 2020-12-26
      相关资源
      最近更新 更多