1

Stringバッキングデータベースによって列にインデックスを付ける必要があるデータモデルがあります。

@Entity
public class A {
    // ... 

    @Column(length=2048)
    @Index(name="strFieldIndex")
    private String strField;
}

(hibernate がvarcharlengthを生成しなくなった) の属性を追加すると、次のエラー メッセージが に表示されます。@Column(length=2048)MySQL

ERROR org.hibernate.tool.hbm2ddl.SchemaExport - 
    BLOB/TEXT column 'strField' used in key specification without a key length

休止状態の API ドキュメントをスキャンしましたが、キーの長さを設定する方法が見つかりません。

4

1 に答える 1

2

Hibernate はすべての DBMS 固有の要件を処理できないため、MySQL に必要なこのインデックスを手動で宣言する必要があると思います。たとえば、<database-object>構文を使用します。

于 2011-03-08T11:10:48.403 に答える