我在使用 Hibernate 和外键时遇到以下问题:
当我第一次部署我的 Web 应用程序时,Hibernate 配置了以下参数(以及许多其他参数):
databasePlatform
设置为“通用”(不是引擎特定的)方言org.hibernate.dialect.MySQLDialect
。hibernate.hbm2ddl.auto
调成update
作为默认引擎MyISAM
,Hibernate 在逻辑上创建了MyISAM
带有索引的表,忽略了创建外键(因为MyISAM
不支持此类约束)。
现在我想将每个表迁移到InnoDB
,我希望 Hibernate 自动创建缺少的外键。不幸的是,Hibernate 似乎只是在寻找索引:
- 如果索引存在,Hibernate 不会创建对应的外键;
- 如果我删除索引,Hibernate 将创建索引和外键。
由于我不想删除架构中的每个索引,您是否知道即使创建了索引也可以告诉 Hibernate 创建外键的方法?
谢谢你。