0
我遇到Hibernate和外鍵下面的問題:使用Hibernate創建外鍵
databasePlatform
:當我第一次部署我的web應用程序時,Hibernate用這個參數(以及許多其他)配置設置爲「通用」(不是引擎專用)方言
org.hibernate.dialect.MySQLDialect
。hibernate.hbm2ddl.auto
設置爲update
作爲默認引擎爲MyISAM
,休眠邏輯創建MyISAM
表與索引,忽略創建外鍵(因爲MyISAM
不支持這樣的限制)。
現在,我想每一個表遷移到InnoDB
,我想Hibernate來自動創建缺少的外鍵。不幸的是,它看起來像休眠只是尋找索引:
- 如果索引存在,Hibernate將不會創建相應的外鍵;
- 如果我刪除索引,Hibernate將創建索引和外鍵。
由於我不想放棄架構中的每個索引,你知道一種方法來告訴Hibernate創建外鍵,即使索引被創建嗎?
謝謝。
你不能只是讓hbm2ddl從零開始重新創建數據庫嗎?它不是爲在生產環境中使用而設計的,所以我不希望Hibernate能夠做到這一點,如果它尚未在更新中。 –
其實我很想輕鬆轉換我的測試環境數據庫,以便對基準測試數據庫進行基準測試。如果一切正常並且基準是確鑿的,那麼我絕對不會在我的生產環境中使用hbm2ddl更新,而是在我的臨時環境中測試的足夠的SQL腳本。 – ssssteffff