我在Hibernate和外键中遇到了以下问题:
当我第一次部署我的web应用程序时,Hibernate配置了以下参数(包括许多其他参数):
databasePlatform设置为“泛型”(非引擎专用)方言org.hibernate.dialect.MySQLDialect。hibernate.hbm2ddl.auto设置为update由于默认引擎是MyISAM,Hibernate逻辑上创建了带有索引的MyISAM表,忽略了创建外键(因为MyISAM不支持此类约束)。
现在我想将每个表迁移到InnoDB,我希望Hibernate自动创建缺少的外键。不幸的是,Hibernate似乎只是在寻找索引:
因为我不想删除架构中的每个索引,所以您知道如何让Hibernate创建外键,即使创建了索引也是如此?
谢谢。
发布于 2013-01-03 13:48:24
我的建议是允许hibernate重新创建整个模式,因为这是您的开发数据库。
但是,如果您有很多不想丢失的测试数据,那么我将使用可用的MySQL命令创建一个脚本,自动删除Hibernate的所有索引以重新创建它们。您需要的命令如下:
show tables;
show index from `table_name`;
drop index `index_name` on `table_name`;将这些组织成某种形式的程序脚本(shell、python或应用程序)。你可以走了。
https://stackoverflow.com/questions/14137403
复制相似问题