衆所周知,hibernate以非常奇怪的方式處理索引。只有從頭開始創建數據庫模式時纔會生成它們。但是如果你嘗試更新數據庫模式,hibernate會忽略新的索引。Hibernate用新索引更新數據庫結構
我的問題是,是否有人找到一個解決方案如何在模式更新期間要求hibernate爲新索引生成SQL。我想與Stefan Steinegger不同意。使用Hibernate進行索引管理是一件痛苦的事情。很高興看到該功能計劃用於下一個版本(3.5.x),並且將向後兼容3.3.x和3.2.x。詳細信息是here。
你當然可以不同意斯蒂芬,但他絕對是對的。 Hibernate架構更新只給你非常基礎的東西。當涉及索引/輔助對象(觸發器/存儲特效/等...),**改變**列,約束等等,它不會有任何幫助。有適當的工具,Hibernate架構更新不是其中之一。 Сокироюцвяхинезабивають:-) – ChssPly76 2009-10-30 16:36:02
Thanx ChssPly76。我很欣賞你的觀點。但我主要使用SchemaUpdate作爲比較現有模式與休眠模式的差異工具。這就是爲什麼我需要查看自上次部署以來發生了哪些變化(例如添加了新索引等)。現在SchemaUpdate對我來說很好,除了一種情況 - 索引。我知道並評估了數據庫重構工具,包括下面提到的LiquiBase。他們中的大多數不能爲我提供我期望的靈活性水平。我期待Liquibase 2.0希望它能滿足我的胃口。 – FoxyBOA 2009-10-31 05:11:07