6

継承したプロジェクトで hbm2ddl.auto=validate を有効にしようとしました。text または mediumtext (MySQL データベース) にマップされた String プロパティに対して、間違った列タイプの例外が多数発生するようになりました。

マッピングは次のとおりです。

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

また、データベースのデータ型は「テキスト」(utf8_general_ci) です。

これは正しいマッピングであると思いましたが、Hibernate はテキストが見つかったが長いテキストが必要であると不平を言っています。

休止状態の構成を確認しましたが、ダイアログが指定されていませんでした。私は追加しました

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

しかし、それは違いを生むようには見えません。

columnDefinition="text" をマッピングに追加できることはわかっていますが、多くの場所でそれを行う必要があり、IMHO マッピングは既に正しいはずです。それで、何がうまくいかないのですか?何か案は?

ありがとう

4

1 に答える 1

12

次のように、columnDefinition を @Column アノテーションに追加する必要があります。

@Column(name = "DESCRIPTION", nullable = false, length = 65535, columnDefinition="TEXT")
于 2011-09-01T10:03:57.830 に答える