2010-06-22 21 views
2

我正在嘗試在使用Hibernate註釋的特定文本字符串上創建索引。什麼我目前做的是:將一個索引應用於Blob/Longtext字段

@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此列的索引?

回答

3

我最初認爲HHH-4389是你正在尋找,但你的情況似乎是一個不同的問題:Hibernate根本不會產生預期的DDL語句。我會打開一個新的Jira問題。

+0

實際上,你所關聯的問題正是問題所在,我將這意味着直到該屬性被添加到「@ Index」標記纔會有解決方案。謝謝! – VeeArr 2010-06-23 16:26:49

2

您必須指定索引的長度。 最大長度取決於存儲引擎,但通常它 如果字符集是UTF-8,你必須3.

創建TABLE_NAME索引guid_index(myguid(1000))來劃分最大lengh是不超過1000個字節,;

對於WHERE字段LIKE'prefix%'和WHERE field ='text'條件來說,這已經足夠了。

+0

儘管如何使用Hibernate來做到這一點? – VeeArr 2010-06-22 20:57:47

+0

我們如何獲得長度超過1000字節的索引? – Pacerier 2012-07-11 01:50:51

相關問題