繁体   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