2010-06-22 8 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 

가 어떻게 최대 절전 모드를 사용하여이 컬럼에 인덱스를 만들 수 있습니까?

답변

3

나는 처음에 HHH-4389이 당신이 찾고있는 것이라고 생각했지만 당신의 경우는 다른 이슈로 보인다 : Hibernate는 단순히 예상 된 DDL 문을 생성하지 않고있다. 새로운 Jira 문제를 열 ​​것입니다.

+0

실제로 당신이 링크 한 문제는 정확히 무엇이 문제인지, 그리고 나는 그 속성이'@ Index' 태그에 추가 될 때까지 해결책이 없다는 것을 의미합니다. 감사! – VeeArr

2

색인의 길이를 지정해야합니다. 최대 길이는 스토리지 엔진에 따라 다르지만 캐릭터 세트는 UTF-8 인 경우, 당신은 3

TABLE_NAME에 인덱스 guid_index를 작성 (myguid (1000))에 의해 최대 lengh를 분할해야 보통은 이상 1,000 바이트입니다;

'LIKE'LIKE 'prefix %'와 WHERE field = 'text'조건에는 충분합니다.

+0

어떻게하면 Hibernate를 사용하여 이것을 할 수 있습니까? – VeeArr

+0

길이가 1000 바이트를 넘는 인덱스는 어떻게 얻을 수 있습니까? – Pacerier

관련 문제