2

Hibernateアノテーションを使用して特定のテキスト文字列にインデックスを作成しようとしています。私が現在行っていることは次のとおりです。

@Index(name="guid_index")
@Column(length=1400)
private String myGUID;

ただし、列の長さが1400であるため、これはlongtext型を使用してSQLにマップされます。hbm2ddlは問題なくテーブルを作成できますが、インデックスを作成しようとすると、次のようになります。

Unsuccessful: create index guid_index on table_name (myguid);
BLOB/TEXT column 'myguid' used in key specification without a key length

Hibernateを使用してこの列にインデックスを作成するにはどうすればよいですか?

4

2 に答える 2

3

最初はHHH-4389があなたが探しているものだと思っていましたが、あなたのケースは別の問題のようです.Hibernateは単に期待されるDDLステートメントを生成していません. 新しい Jira 課題を開きます。

于 2010-06-23T01:05:11.693 に答える
2

インデックスの長さを指定する必要があります。最大長はストレージ エンジンによって異なりますが、通常は 1000 バイトを超えません。文字セットが utf-8 の場合、最大長を 3 で割る必要があります。

table_name (myguid (1000) ) にインデックス guid_index を作成します。

WHERE field LIKE 'prefix%' および WHERE field = 'text' 条件には十分です。

于 2010-06-22T20:55:21.903 に答える