我想通過xml映射在文本字段上添加索引。就像在https://stackoverflow.com/a/860955/3256688中建議的那樣,我試圖使用輔助數據庫對象,因爲映射本身不支持索引長度。但對我來說,看起來Hibernate完全忽略了這部分映射。設置TEXT的索引長度
這是我的代碼。想要添加索引url_idx
到表MY_TABLE
。
的hibernate.cfg.xml:
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>
...
<mapping resource="mytable.hbm.xml"/>
...
mytable.hbm.xml:
<hibernate-mapping>
<class name="com.company.MyTable" table="MY_TABLE">
...
<property name="url" column="url" type="text"/>
...
</class>
<database-object>
<create>CREATE INDEX url_idx ON MY_TABLE (`url`(30))</create>
<drop>DROP INDEX ON MY_TABLE `url_idx`</drop>
<dialect-scope name="org.hibernate.dialect.MySQL5InnoDBDialect"></dialect-scope>
</database-object>
</hibernate-mapping>
在休眠(調試級別)的日誌我看到每個表和索引都正確創建,但我找不到任何關於url_idx
。當然,在數據庫中沒有創建索引。
任何線索我在這裏失蹤?
編輯:非常有趣:如果我使用工具org.hibernate.tool.hbm2ddl.SchemaExport
進行模式導出,它的工作方式應該是正常工作。但如果我在代碼中初始化Hibernate,仍然是一樣的。
Btw。我使用Hibernate 4.3.6
你是什麼意思?我不明白......這和我發佈它的方式完全一樣,或者? – ChornHulio 2014-12-07 21:51:01
刪除刪除指令,您將在數據庫中看到您的索引 – Pracede 2014-12-08 05:02:31
這也不起作用。 – ChornHulio 2014-12-08 07:48:34