簡體   English   中英

休眠模式更新問題

[英]Hibernate Schema update issue

我已經在休眠持久類中添加了一個字符串字段,然后重新啟動了應用程序。 它啟動了SchemaUpgrade,並導致了類似以下錯誤:

2011-02-03 13:04:06,522 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - Unsuccessful: alter table table_name add index FKCD10932052C35B33 (previewExample_id), add constraint FKCD10932052C35B33 foreign key (previewExample_id) references preview (id)
2011-02-03 13:04:06,522 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - Can't create table 'dbName.#sql-59c_1cc' (errno: 150)

該列已添加到數據庫中。 而且一切似乎都正常。 除了那些錯誤,每次都會彈出,我都啟動了該應用程序。

我該如何幫助它創建這些索引? DB是MySQL,休眠版本是3.0。

聽起來不像是休眠問題。 如果嘗試手動運行,將會看到同樣的問題。 通過查看MySQL手冊,我看到“ errno:150”的意思是:

如果重新創建已刪除的表,則該表必須具有符合引用該表的外鍵約束的定義。 如前所述,它必須具有正確的列名和類型,並且必須在引用的鍵上具有索引。 如果不滿足這些條件,MySQL將返回錯誤號1005,並在錯誤消息中引用錯誤150。

http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

對我來說,通過將所有表Engine更改為InnoDB可以解決問題。

這是手動操作的方法:

https://stackoverflow.com/a/9492183/1988704

還要確保被引用列和被引用列之間的TABLE_COLLATION相同...否則,您還會收到該錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM