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